2020/07 / 13-Javaループ構造の演習(Yang Huiの三角形を印刷、0〜7で構成されるすべての奇数を印刷、各桁に数字の繰り返しがない)

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);
    }
}

おすすめ

転載: blog.csdn.net/qq_42005540/article/details/107327825