c语言abc*e=dcba,C语言。ABCD*E=DCBA

本文探讨了一种特殊的数学问题,即找到所有符合条件的五位数,当该五位数与一个一位数相乘后结果为原数字的逆序数。文章提供了两种解决方案,一种是使用五个嵌套的for循环来枚举所有可能的数字组合,另一种则是通过直接计算的方式进行验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

93c89648b4b64665053f58e33d7fa63e.png

Jason333

你这写的。。。 n 初始化值为0,而且一直是0, 所以你这个 if (m * e == n)肯定不会成立有两种方法:第一种就是5个for for(int a = 1; a<= 9; a++) {  // 因为是4位数,所以首位不会出现0

for(int b = 0; b <= 9; b++) {

for(int c = 0; c <= 9; c++) {

for(int d = 1; d<= 9; d++) { //同理

for(int e = 1; e <= 9; e++) {

if((a * 1000 + b * 100 + c * 10 + d) * e == d * 1000 + c * 100 + b * 10 + a                            && a != b && a != c && a != d && b != c && b != d && c != d

&& a != e && b != e && c != e && d != e){

// a,b,c,d,e 应该是不同的数字,可以相同就去了

//....

}

}

}

}

}

}第二种就是你这样, 判断的时候稍微改下for(int m = 1000; m <= 9999; m++) {

for(int e = 1; e <= 9; e++) {

n = m * e;

a1 = n / 1000;

b1 = n / 100 % 10;

c1 = n / 10 % 10;

d1 = n % 10;

a2 = m / 1000;

b2 = m / 100 % 10;

c2 = m / 10 % 10;

d2 = m % 10;

if(a1 == d2 && b1 == c2 && c1 == b2 && d1 == a2

&& a1 != b1 && a1 != c1 && a1 != d1 && b1 != c1 && b1 != d1 && c1 != d1

&& a1 != e && b1 != e && c1 != e && d1 != e){

// a,b,c,d,e 应该是不同的数字,可以相同就去了

//....

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值