一道小學奧數題的編程解法

一道小學奧數題的編程解法


這是一道小學奧數題,看到這一題後如果只給我筆和紙,我真的無從下手,不知怎麼去把這些方框填出來。但藉助編程,這道題就非常簡單了。直接送上代碼。

C++程序代碼

#include

using namespace std;

int allDifferent(int a[],int size);

int main()

{

int a[9];

for(int k=1;k<=8;k++)

{

for(int i=1234;i<9876>

{

for(int j=1;j<=9;j++)

{

if(i%j==k)

{

if(i/j>=100&&i/j<=999)

{

a[0]=i/1000;

a[1]=i/100%10;

a[2]=i%100/10;

a[3]=i%10;

a[4]=j;

a[5]=i/j/100;

a[6]=i/j/10%10;

a[7]=i/j%10;

a[8]=k;

if(allDifferent(a,9))

cout<

}

}

}

}

}

return 0;

}

int allDifferent(int a[],int size)

{

int flag=1;

for(int i=0;i

{

for(int j=i+1;j

{

if(a[i]==a[j]||a[i]==0)

{

flag=0;

break;

}

}

}

return flag;

}

結果輸出:

2584 / 7 = 369…1

4852 / 7 = 693…1

5923 / 7 = 846…1

7435 / 9 = 826…1

1847 / 5 = 369…2

4817 / 5 = 963…2

4126 / 7 = 589…3

5781 / 9 = 642…3

3178 / 6 = 529…4

1973 / 8 = 246…5

2896 / 7 = 413…5

2917 / 8 = 364…5

2941 / 8 = 367…5

4973 / 8 = 621…5

6341 / 8 = 792…5

7413 / 8 = 926…5

7461 / 8 = 932…5

7431 / 9 = 825…6

7512 / 9 = 834…6

3752 / 9 = 416…8

6425 / 9 = 713…8

怎麼樣?所有數字都不重複,完全符合題目要求。是不是很便捷?所以, 你對編程是不是也充滿了興趣?


分享到:


相關文章: