形式一:
1. 思路分析:
(1)定义一个数组a[4],数组里面存放的值为2,3,5,7;依次对每位数进行穷举,将数组里面的数赋给每位数;利用穷举所求出的值可推算出乘式的第四、第五、最后一行的数字;
(2)求出各数后加一个判断条件:判断所求的数是否满足各位为2或3或5或7,因为数太多,所以构造一个子函数用于做判断条件;
(3)按题中所给的乘式的形式输出相应的数字。
2. 源代码:
#include <stdio.h>
int ps(int n)
{
int t;
while (n)
{
t = n % 10;
if (t == 2 || t == 3 || t == 5 || t == 7)
{
n = n / 10;
}
else
return 0;
}
return 1;
}
void main()
{
int i, j, k, g, h, num, num1, num2, num3, num4, fig, fig1, fig2, fig3, fig4, sum, sum1, sum2, sum3, sum4, sum5, A, B, C, D, E;
int a[4] = { 2,3,5,7 };
for (i = 0; i < 4; i++)
{
A = a[i];
for (j = 0; j < 4; j++)
{
B = a[j];
for (k = 0; k < 4; k++)
{
C = a[k];
for (g = 0; g < 4; g++)
{
D = a[g];
for (h = 0; h < 4; h++)
{
E = a[h];
num = (A * 100 + B * 10 + C)*E;
fig = (A * 100 + B * 10 + C)*D;
sum = num + fig * 10;
if (num > 221 && fig > 221 && ps(num) && ps(fig) && sum > 22221 && ps(sum))
{
num1 = num / 1000;
num2 = num / 100 % 10;
num3 = num / 10 % 10;
num4 = num % 10;
fig1 = fig / 1000;
fig2 = fig / 100 % 10;
fig3 = fig / 10 % 10;
fig4 = fig % 10;
sum1 = sum / 10000;
sum2 = sum / 1000 % 10;
sum3 = sum / 100 % 10;
sum4 = sum / 10 % 10;
sum5 = sum % 10;
printf(" %d%d%d\n", A, B, C);
printf("* %d%d\n", D, E);
printf("--------------\n");
printf(" %d%d%d%d\n", num1, num2, num3, num4);
printf(" %d%d%d%d \n", fig1, fig2, fig3, fig4);
printf("--------------\n");
printf(" %d%d%d%d%d\n", sum1, sum2, sum3, sum4, sum5);
printf("\n");
}
}
}
}
}
}
}
形式二:(仿照形式一作答)
源代码:
#include <stdio.h>
int main(void)
{
int A,B,C,D,E,F,num,fig,dig,num1,num2,num3,num4,fig1,fig2,fig3,fig4,dig1,dig2,dig3,sum=0,sum1,sum2,sum3,sum4,sum5;
for(A=1;A<=4;A++)
for(B=5;B<=9;B++)
for(C=0;C<=4;C++)
for(D=1;D<=4;D++)
for(E=0;E<=4;E++)
for(F=5;F<=9;F++)
{
num=(A*100+B*10+C)*F;
fig=(A*100+B*10+C)*E;
th=(A*100+B*10+C)*D;
num1=num/1000;
num2=num/100%10;
num3=num/10%10;
num4=num%10;
fig1=fig/1000;
fig2=fig/100%10;
fig3=fig/10%10;
fig4=fig%10;
dig1=dig/100;
dig2=dig/10%10;
dig3=dig%10;
if(num1>=1 && num1<=4 && num2<=4 && num3<=4 && num4<=4)
if(fig1>=1 && fig1<=4 &&fig2<=4 && fig3>=5 && fig4>=5)
if(dig1>=5 && dig2<=4 && dig3<=4)
{
sum=(A*100+B*10+C)*(D*100+E*10+F);
sum1=sum/10000;
sum2=sum/1000%10;
sum3=sum/100%10;
sum4=sum/10%10;
sum5=sum%10;
if(sum1>=5 && sum2<=4 && sum3>=5 && sum4<=4 && sum5<=4)
{
printf(" %d%d%d\n",A,B,C);
printf(" *%d%d%d\n",D,E,F);
printf("----------\n");
printf(" %d%d%d%d\n",num1,num2,num3,num4);
printf(" %d%d%d%d \n",fig1,fig2,fig3,fig4);
printf(" %d%d%d \n",dig1,dig2,dig3);
printf("----------\n");
printf("%d%d%d%d%d\n",sum1,sum2,sum3,sum4,sum5);
printf("");
}
}
}
}