【发布时间】:2019-07-30 02:53:39
【问题描述】:
输入 n,m 我写了这段代码,它将找到最小的数字,使得 不。将被 n 整除 和它的数字总和 = m 但它没有执行,它花费了太多时间并且没有显示任何输出
我尝试将 i 从 n+1 运行到 INT_MAX,但没有任何区别
#include <iostream>
#include<climits>
#include<stdio.h>
using namespace std;
int main()
{
int n, m, a;
cin >> n >> m;
for (int i = n + 1; i < INT_MAX; i++)
{
a = 0;
if (i % n == 0)
{
while (i > 0)
{
a += i % 10;
i = i / 10;
}
if (a == m)
{
cout << a;
break;
}
}
if (a == m)
break;
}
}
我希望输出是一些数字,但它什么也没显示
【问题讨论】:
-
您使用的输入是什么?你对输出有什么期望?您是否在调试器中单步执行过代码?
-
i = i / 10;看起来很糟糕,因为这里也使用了ifor (int i = n + 1; i < INT_MAX; i++) -
为什么你把 if 条件 (a == m) 放在第二位??