c 语言 编程练习题 标题: 马虎的算式 小明是个急性子,上小学的时候经常把老师写在黑
答案:2 悬赏:70 手机版
解决时间 2021-01-17 06:30
- 提问者网友:流星是天使的眼泪
- 2021-01-16 20:59
c 语言 编程练习题 标题: 马虎的算式 小明是个急性子,上小学的时候经常把老师写在黑
最佳答案
- 五星知识达人网友:愁杀梦里人
- 2021-01-16 21:13
#include
int main()
{
int a,b,c,d,e,n;
n=0;
for (a=1;a<10;a++)
for (b=1;b<10;b++)
{ if (a==b) continue;
else
for (c=1;c<10;c++)
{ if((c==a)||(c==b)) continue;
else
for (d=1;d<10;d++)
{ if((d==a) || (d==b) || (d==c)) continue ;
else
for (e=1;e<10;e++)
{ if ((e==a)||(e==b)||(e==c)||(e==d)) continue;
else if ( (10*a+b)*(100*c+10*d+e)==(100*a+10*d+b)*(10*c+e)) n++;
}
}
}
}
printf("这样的数共有%d个。
",n);
system("PAUSE");
return 0;
}
int main()
{
int a,b,c,d,e,n;
n=0;
for (a=1;a<10;a++)
for (b=1;b<10;b++)
{ if (a==b) continue;
else
for (c=1;c<10;c++)
{ if((c==a)||(c==b)) continue;
else
for (d=1;d<10;d++)
{ if((d==a) || (d==b) || (d==c)) continue ;
else
for (e=1;e<10;e++)
{ if ((e==a)||(e==b)||(e==c)||(e==d)) continue;
else if ( (10*a+b)*(100*c+10*d+e)==(100*a+10*d+b)*(10*c+e)) n++;
}
}
}
}
printf("这样的数共有%d个。
",n);
system("PAUSE");
return 0;
}
全部回答
- 1楼网友:思契十里
- 2021-01-16 22:16
#include
#include
int main(){
int i, j;
int a, b, c, d, e;
int arr[10];
for(i = 11; i < 100; ++i){
for(j = 100; j < 1000; ++j){
a = i / 10;
b = i % 10;
c = j / 100;
d = (j / 10) % 10;
e = j % 10;
//printf("%d %d %d %d %d ", a, b, c, d, e);
memset(arr, 0, sizeof(arr));
++arr[a];
++arr[b];
++arr[c];
++arr[d];
++arr[e];
int ok = 1;
for(int k = 1; k <= 9; ++k)
if(arr[k] >= 2)
ok = 0;
if(ok && a && b && c && d && e){
int tmp_i = a * 100 + d * 10 + b;
int tmp_j = c * 10 + e;
if(i * j == tmp_i * tmp_j){
printf("%d * %d == %d * %d", i, j, tmp_i, tmp_j);
printf(" ");
}
}
}
}
return 0;
}
本来想递归的 嫌麻烦。。。。
#include
int main(){
int i, j;
int a, b, c, d, e;
int arr[10];
for(i = 11; i < 100; ++i){
for(j = 100; j < 1000; ++j){
a = i / 10;
b = i % 10;
c = j / 100;
d = (j / 10) % 10;
e = j % 10;
//printf("%d %d %d %d %d ", a, b, c, d, e);
memset(arr, 0, sizeof(arr));
++arr[a];
++arr[b];
++arr[c];
++arr[d];
++arr[e];
int ok = 1;
for(int k = 1; k <= 9; ++k)
if(arr[k] >= 2)
ok = 0;
if(ok && a && b && c && d && e){
int tmp_i = a * 100 + d * 10 + b;
int tmp_j = c * 10 + e;
if(i * j == tmp_i * tmp_j){
printf("%d * %d == %d * %d", i, j, tmp_i, tmp_j);
printf(" ");
}
}
}
}
return 0;
}
本来想递归的 嫌麻烦。。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯