一道小学奥数题的编程解法

一道小学奥数题的编程解法


这是一道小学奥数题,看到这一题后如果只给我笔和纸,我真的无从下手,不知怎么去把这些方框填出来。但借助编程,这道题就非常简单了。直接送上代码。

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

怎么样?所有数字都不重复,完全符合题目要求。是不是很便捷?所以, 你对编程是不是也充满了兴趣?


分享到:


相關文章: