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,也就是没有进入循环
的初始数字,真的很头痛,求解决。难道循环有上限么?
...全文
1468 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
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的,里面五重循环,一共六重循环暴力计算。
真相重于对错 2017-12-09
  • 打赏
  • 举报
回复
而且你的算法有问题,那里体现不同的数字 这么算最后可能就是楼上的答案。1000+9000=10000
真相重于对错 2017-12-09
  • 打赏
  • 举报
回复
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
  • 打赏
  • 举报
回复
说实话自己再看一遍,都感觉晕的不行。

64,653

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧