ホームページ > Java > &#&チュートリアル > Java 初心者向けの 10 個の小さなプログラム例

Java 初心者向けの 10 個の小さなプログラム例

无忌哥哥
リリース: 2018-07-23 10:17:35
オリジナル
14972 人が閲覧しました

1. カラーテレビを 2856 元で買いました。何枚の紙幣を支払いましたか?

public class Demo01 {

	public static void main(String[] args) {
		int play = 2856;
		System.out.println("100元面值:" + play / 100);
		System.out.println("50元面值:" + play / 10 % 10 / 5);
		System.out.println("20元面值:" + play / 10 % 10 % 5 / 2);
		System.out.println("10元面值:" + play / 10 % 10 % 5 % 2);
		System.out.println("5元面值:" + play % 10 / 5);
		System.out.println("1元面值:" + play % 10 % 5);
	}
}
ログイン後にコピー

2. モンスターを倒すプロセスをシミュレートします: ゲームには合計 20 のレベルがあり、ヒーローとモンスターの 2 つの役割があります。最初のレベルでは、モンスターの経験値は 20 ポイント、アップグレードに必要な経験値は 1200 ポイントです。 、ヒーローの経験値は0で、ヒーローが殺されるたびにモンスターの経験値が自動的に増加します。レベルごとに、アップグレードに必要な経験値が20%増加します(小数部分を無視)、モンスターの経験値は5増加します。 %になると、ヒーローの経験値は0に戻ります。レベル20に達すると、合計キル数がどれほど奇妙になるに違いありません。

public class Demo02 {
	public static void main(String[] args) {
		int monster = 20;
		int count = 0;
		int exp = 1200;
		for (int d = 2; d <= 20; d++) {
			int hero = 0;
			monster = (int) (monster * 1.05);
			exp = (int) (exp * 1.2);
			while (hero < exp) {
				hero += monster;
				count++;
			}
		}
		System.out.println(count + 1200 / 20);
	}
}
ログイン後にコピー

3. トピック: 桃を食べる猿 問題: 猿は初日に桃を数個摘み、すぐに半分を食べましたが、満足できずにもう 1 個食べ、翌朝残りの半分を食べました。 。それ以来、毎朝、前日の残りを半分と一つずつ食べました。 10日目の朝、また食べようと思ったら、桃が1個だけ残っていた。初日に何匹選ばれたかを調べてください。

プログラム分析: 逆思考法を採用し、後ろから前へ推論します。

public class Demo03 {
	public static void main(String[] args) {
        int sum = 1; 
        for(int i = 9;i > 0;i--){ 
            sum = (sum + 1) * 2; 
        } 
        System.out.println("第一天,有桃子"+sum+"颗"); 
    }
}
ログイン後にコピー

4. 質問: 特定の年、特定の月、特定の日を入力して、この日が一年のうち何日であるかを判断してください。

プログラム分析: 3 月 5 日を例にとると、最初の 2 か月を合計し、その後、閏年や 3 より大きい月を入力するなどの特別な状況である 5 日を追加する必要があります。追加の日を考慮する必要があります。

public class Demo04 {

	public static void main(String[] args) {
		int sum = 0;
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入几年:");
		int year = sc.nextInt();
		System.out.println("请输入几月:");
		int month = sc.nextInt();
		System.out.println("请输入几号:");
		int day = sc.nextInt();
		GregorianCalendar gre = new GregorianCalendar();
		boolean isLeapYear = gre.isLeapYear(year);

		int ap = isLeapYear ? 29 : 28;
		int days = 0;
		switch (month) {
		case 1:
			days = day;
			break;
		case 2:
			days = 31 + day;
			break;
		case 3:
			days = 31 + ap + day;
			break;
		case 4:
			days = 31 + ap + 31 + day;
			break;
		case 5:
			days = 31 + ap + 31 + 30 + day;
			break;
		case 6:
			days = 31 + ap + 31 + 30 + 31 + day;
			break;
		case 7:
			days = 31 + ap + 31 + 30 + 31 + 30 + day;
			break;
		case 8:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + day;
			break;
		case 9:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + day;
			break;
		case 10:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
			break;
		case 11:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
			break;
		case 12:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
			break;

		default:
			System.out.println("月份输入错误");
			break;
		}
		System.out.println("这一天是这一年的第" + days + "天");
	}
}
ログイン後にコピー

5. 質問: 1、2、3、4 の数字は繰り返されずに何通り作れますか?いくつだ?

プログラム分析: 百の位、十の位、一の位に入力できる数字はすべて 1、2、3、4 です。すべての順列を合成したら、条件を満たさない順列を削除します。

public class Demo05 {
	public static void main(String[] args) {
		int count = 0;
		for (int i = 1; i < 5; i++) {
			for (int j = 1; j < 5; j++) {
				for (int k = 1; k < 5; k++) {
					if (i != j && i != k && k != j) {
						count++;
						System.out.println(i * 100 + j * 10 + k);
					}
				}
			}
		}
		System.out.println("能组成" + count + "个互不相同无重复数字的三位数。");
	}
}
ログイン後にコピー

6. 質問: ボールは 100 メートルの高さから自由に落下し、地面に当たると元の高さの半分まで跳ね返ります。そのとき、ボールは合計何メートル通過しますか。地面に着くのは10回目? 10回目のラリーはどれくらいですか?

public class Demo06 {
	public static void main(String[] args) {
		double height= 100;
		double sum=100;
		for(int i=0;i<10;i++) {
			height=height/2;
			sum+=height*2;
		}
		System.out.println("第十次反弹高度为:"+height+"米");
		System.out.println("共经过:"+(sum-height*2)+"米");
	}
}
ログイン後にコピー

7. 問題: 「水仙数」をすべて出力してください。いわゆる「水仙数」とは、3 桁の和がその数自体に等しいものを指します。たとえば、153=1 の 3 乗 + 5 の 3 乗 + 3 の 3 乗なので、153 は「水仙数」です。

プログラム分析: for ループを使用して 100 ~ 999 の数値を制御し、各数値を単位、十の位、百の位に分解します。

public class Demo07 {
	public static void main(String[] args) {
		System.out.println("100-999以内的水仙花数:");
		for(int n=100;n<=999;n++) {
			int a;
			int b;
			int c;
			a=n%10;
			b=((n%100)-a)/10;
			c=(int) Math.floor(n/100);
			if(n==(Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3))) {
				System.out.println(n);
			}
		}
	}
}
ログイン後にコピー

8. トピック: 正の整数を素因数に分解します。例: 90 を入力し、90=2*3*3*5 を出力します。

プログラム分析: n の素因数を分解するには、まず最小の素数 k を見つけて、次の手順に従ってそれを完了する必要があります:

(1) この素数が n と正確に等しい場合、それは次のことを意味します。素因数を分解するプロセスは終了しました。印刷するだけです。

(2) n>k であるが、n が k で割り切れる場合、k の値を出力し、n を k で割った商を新しい正の整数 n として使用し、最初のステップを繰り返す。

(3) n が k で割り切れない場合は、k+1 を k の値として使用し、最初の手順を繰り返します。

public class Demo08 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		System.out.print(n + "=1*");
		for (int k = 2; k <= n / 2; k++) {
			if (n % k == 0) {
				System.out.print(k + "*");
				n = n / k;
				k = 2;
			}
		}
		System.out.println(n);
	}
}
ログイン後にコピー

9. 質問: 条件演算子のネストを使用してこの質問を完成させます。学力スコアが 90 点以上の生徒は A で表され、スコアが 60 ~ 89 点の生徒は B で表され、スコアが 60 未満の生徒はC で表されます。

プログラム分析: (a>b)?a:b これは条件演算子の基本的な例です。

public class Demo09 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int n = sc.nextInt();
		long s = 0l;
		for (int i = 1; i <= n; i++) {
			s = s + a;
			a = a * 10 + a;
		}
		System.out.println(s);
	}
}
ログイン後にコピー

10. 質問: ある数値が因数の合計と完全に等しい場合、その数値は「完全数」と呼ばれます。たとえば、6=1+2+3 1000 以内の完全な数をすべて見つけるプログラムです。

りー

以上がJava 初心者向けの 10 個の小さなプログラム例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート