c++for循环莫名其妙不进行

qq_36045558 2017-12-07 11:46:11
三羊献瑞

观察下面的加法算式:

      祥 瑞 生 辉
  +   三 羊 献 瑞
-------------------
   三 羊 生 瑞 气
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字
请你填写“三羊献瑞”所代表的4位数字(答案唯一),



// 求字.cpp: 定义控制台应用程序的入口点。
//a1三b0羊c8献d5瑞e2气f6生g7辉h9祥

#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
long a=1, b=0, c=0, d=0, e=0, f=0, g=0,h=0,sum_1,sum,i,n;
sum = (g + (f * 10) + (d * 100) + (h * 1000)) + (d + (c * 10) + (b * 100) + (a * 1000));
sum_1 =( e + (10 * d) + (f * 100) + (b * 1000) + (a * 10000));
for (i = 0; sum_1 != sum;i++) {
n = i;
b = i % 10;
i = i / 10;
c = i % 10;
i = i / 10;
d = i % 10;
i = i / 10;
e = i % 10;
i = i / 10;
f = i % 10;
i = i / 10;
g = i % 10;
i = i / 10;
h = i % 10;
i = i / 10;
sum = (g + (f * 10) + (d * 100) + (h * 1000)) + (d + (c * 10) + (b * 100) + (a * 1000));
sum_1 = e + (10 * d) + (f * 100) + (b * 1000) + (a * 10000);
i = n;
}
cout << a << b << c << d;
system("pause");
return 0;
}
我使用的是超级暴力的解法,但是理论上应该是没有问题的,可是每次vs2017编译最后输出都是1000,也就是没有进入循环
的初始数字,真的很头痛,求解决。难道循环有上限么?
...全文
509 12 1 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Ricarda_ T _Hu 2018-12-08
大佬 我今天遇到了 你之前说的数字不能相同是什么意思 求解
  • 打赏
  • 举报
回复
qq_36045558 2017-12-10
谢谢大家的回帖,我已经解决了,问题出在数字不能相同这里了。少了这一个条件,导致提前退出了循环。
  • 打赏
  • 举报
回复
风语空音 2017-12-10
  • 打赏
  • 举报
回复
大尾巴猫 2017-12-09
简单分析一下,三必定是1,祥是8或者9,最后1位的2个辉或者瑞不可能是0,不算8和9的,里面五重循环,一共六重循环暴力计算。
  • 打赏
  • 举报
回复
而且你的算法有问题,那里体现不同的数字 这么算最后可能就是楼上的答案。1000+9000=10000
  • 打赏
  • 举报
回复
i = i / 10; 这是什么玩意???
  • 打赏
  • 举报
回复
z416575462 2017-12-09
9000+1000=10000
  • 打赏
  • 举报
回复
月凉西厢 2017-12-08
应该在这里 sum = (g + (f * 10) + (d * 100) + (h * 1000)) + (d + (c * 10) + (b * 100) + (a * 1000)); sum_1 =( e + (10 * d) + (f * 100) + (b * 1000) + (a * 10000)); for (i = 0; sum_1 != sum;i++) { 循环条件的值sum只会在循环一开始取值一次,后面就都是1000,这是我的猜测,用while替换for应该没有这个问题。 by the way,你这种写法,何苦自己为难自己呢?
  • 打赏
  • 举报
回复
倚栏|听风 2017-12-08
看不懂那个加法算式就不说题了 至于你说的循环莫名其妙不执行是不存在的,也没有上限要不然也不会有死循环了 循环不执行应该是判断条件不成立导致退出了循环
  • 打赏
  • 举报
回复
qq_36045558 2017-12-08
哇,没人是最心痛的。
  • 打赏
  • 举报
回复
qq_36045558 2017-12-07
说实话自己再看一遍,都感觉晕的不行。
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ 语言
加入

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2017-12-07 11:46
社区公告
暂无公告