2020/07 / 13-Javaループ構造の演習(Yang Huiの三角形を印刷、0〜7で構成されるすべての奇数を印刷、各桁に数字の繰り返しがない)
1. Yang Huiトライアングルを印刷します(以下に示すように、10行を印刷する必要があります)
- プログラム分析:
- 1
- 1 1
- 1 2 1
- 1 3 3 1
- 1 4 6 4 1
- 1 5 10 10 5 1
- アイデア:
- まず、各行の最初の数字は1です
- 数値の各行の法則は次のとおりです:1; i / 1; i(i-1)/ 1 2;(i-1)(i-2)/ 2 3; ... int i = 0
- 重要:数値の各行の特性とiの関係を分析し、iの初期値が0に設定されていることに注意してください
- たとえば、行3の場合:1、2、1
- 令v=1; a=i,
- i = 2は3行目、v = v * aa–を表します;出力:v = v / j、ここでint j = 0、j = 0は最初の列の最初の数を意味し、j = 1は1つの列を意味しますの2番目の番号
/**
*/
public class test15 {
public static void main(String[] args) {
int num = 5;
for (int i = 0; i < num; i++) {
int v = 1;
int a = i;
for (int j = 0; j <= i; j++) {
int b = j;
if(b==0)
System.out.print(1+" ");
else {
System.out.print((v = v / j) + " ");
}
v=v*a;
a--;
}
System.out.println();
}
}
}
2. 0〜7の奇数を見つけます
アイデアの分析:
-
1の位が1、3、5、7の場合は奇数のみ
-
2桁、3桁、4桁の奇数を計算します。例:
-
2桁の場合、6 * 4の可能性があります。最上位の桁(最初の桁)を0にすることはできないため、7-1 = 6の可能性です。
-
3桁で6 6 4タイプ、1桁目と1桁目が数字、2桁目が8-2 = 6タイプ。
-
4桁、6 6 5 * 4の可能性があります
-
したがって、2桁に分けて書く必要があり、2桁目以降は流通法に従って書くことができます
* /
public class test16 {
public static void main(String[] args) {
int total = 4;
for (int i = 2; i <=8 ; i++) {
//外层循环定义位数
int sum = 4;
for (int j = 1; j < i; j++) {
if (j==1){
sum=sum*6;
}else {
sum=sum*(8-j);
}
}
total+=sum;
}
System.out.println(total);
}
}
3. 1000以内の素数と非素数の正の差を見つける
- アイデア:
- 2は素数、1は素数でも合成数でもない
- 素数+合成数+ 1 =すべての数
- 最初に素数を見つけ、次に合計を使用します-素数の合計=非素数の合計
public class khzy2 {
public static void main(String[] args) {
int j = 0;
int sum = 2;
int num = 0;
int s = 0;
for (int i = 1; i <1000 ; i++) {
num=num+i;
}
System.out.println(num);
for (int i = 2; i <1000 ; i++) {
for ( j = 2; j <i ; j++) {
s =i%j;
if (s==0){
break;
}
}
if (s!=0){
sum = sum + i;
}
}
System.out.println("质数:"+sum);
int n = num - sum;
int k = n - sum;
System.out.println(k);
}
}
4. 1から33までの6つの乱数と、1から15までの乱数をランダムに生成します。これらの7つの数字は繰り返すことができません。
- アイデア:
- 1. int n =(int)(Math.random()10);生成される場合、0〜9の乱数であるため、 34は0〜33の乱数を生成します
- 2.各数値を繰り返すことはできないため、||ステートメントを追加して、2つごとの数値が互いに等しくないことを確認します。
- 3.等しくない場合は7つの数値を出力し、等しい場合はcontiuneステートメントを使用してこのループを終了し、次のループに進みます。
public class khzy1 {
public static void main(String[] args) {
int flag = 0;
do {
int num1 = (int) (Math.random() * 34);
int num2 = (int) (Math.random() * 34);
int num3 = (int) (Math.random() * 34);
int num4 = (int) (Math.random() * 34);
int num5 = (int) (Math.random() * 34);
int num6 = (int) (Math.random() * 34);
int num7 = (int) (Math.random() * 16);
if ((num1!=num2)||(num1!=num3)||(num1!=num4)||(num1!=num5)||(num1!=num6)
||(num1!=num7)||(num2!=num3)||(num4!=num2)||(num5!=num2)||(num6!=num2)
||(num7!=num2)||(num4!=num3)||(num5!=num3)||(num6!=num3)||(num7!=num3)||
(num4!=num5)||(num4!=num6)||(num4!=num7)||(num4!=num2)||(num5!=num6)||(num5!=num7)||(num6!=num7)
){
flag = 1;
System.out.println(num1+" "+num2+" "+num3+" "+num4+" "+num5+" "+num6+" "+num7+" ");
};
}while (flag == 0);
}
}