cari

Rumah  >  Soal Jawab  >  teks badan

java - C语言的一道关于循环的练习题求解


做这道题目没什么思路?不知道该怎么下手,求大神讲解一下

ringa_leeringa_lee2804 hari yang lalu597

membalas semua(6)saya akan balas

  • 大家讲道理

    大家讲道理2017-04-18 10:58:30

    http://blog.csdn.net/houyp520...

    balas
    0
  • 阿神

    阿神2017-04-18 10:58:30

    Perkara yang paling mudah ialah menghitung secara menyeluruh susunan 9 nombor.

    Satu titik pengoptimuman ialah menghapuskan beberapa situasi yang mustahil terlebih dahulu. Sebagai contoh, nombor tengah ialah gandaan 2, dan nombor terakhir ialah gandaan 3. Dan seterusnya.

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:58:30

    Hanya tulis rekursi. . Atau adakah ia dipanggil lelaran?

    balas
    0
  • 高洛峰

    高洛峰2017-04-18 10:58:30

    kelas awam Sidney {

    public static void main(String[] args) {
        int[] s = new int[9];
        for (int i = 300; i < 999; i+=3) {
            int flag = 1;
            Set<Integer> set = new HashSet<>();
            int a = i / 3;
            int b = (i / 3) * 2;
            s[0]=a%10;s[1]=a%100/10;s[2]=a/100;
            s[3]=b%10;s[4]=b%100/10;s[5]=b/100;
            s[6]=i%10;s[7]=i%100/10;s[8]=i/100;
            for (int i1 : s) {
                if (!set.add(i1) || i1 == 0) {
                    flag = 0;
                    break;
                }
            }
            if (flag == 1) {
                System.out.println(a + "\t" + b + "\t" + i);
            }
        }
    }

    }

    balas
    0
  • 迷茫

    迷茫2017-04-18 10:58:30

    Soalan Liu Rujia.

    Jumlah nombor pertama, iaitu nombor yang menyumbang 1 dalam 1:2:3.

    Julat penghitungan ialah 123~345. Berdasarkan nombor ini, hitung dua nombor lain, dan kemudian tentukan sama ada tepat 9 nombor digunakan.

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:58:30

    Ideanya sangat mudah Memandangkan anda mahu nisbahnya ialah 1:2:3 dan setiap nombor perlu digunakan sekali, kemudian besarkan terus 1, 2, dan 3 dengan x kali, dan kemudian tentukan sama ada setiap nombor muncul. sekali sahaja. 1 memerlukan kurang daripada 100 kali pembesaran untuk mencapai 3 digit, jadi mulakan sahaja dari 123. Kodnya adalah seperti berikut.
    int testa()
    {

    int a=1,b=2,c =3;
    char szA[10]={0},szB[4]={0},szC[4]={0},cTag[10]={0};
    
    for(int i=123;i<=333;i++)
    {
        memset(szA,0x00,10);memset(szB,0x00,4);memset(szC,0x00,4);memset(cTag,0x00,10);
        sprintf_s(szA,"%d",a*i);sprintf_s(szB,"%d",b*i);sprintf_s(szC,"%d",c*i);
    
        strcat_s(szA,szB);strcat_s(szA,szC);
        int j=0;
        for(j=0;j<9;j++)
        {
            if(cTag[szA[j]-'1']!=0)
                break;
            cTag[szA[j]-'1']=1;
        }
    
        if(j==9)
            printf("%s\n",szA);
    }
    
    return 0;

    }

    balas
    0
  • Batalbalas