我最近在C ++中创建了一个程序,它计算输入数字中的数字总和(下面的代码)。该程序以这种方式工作。要求用户输入自然数x
。然后程序进入while循环,这意味着继续进行直到x
达到0. y
是一个简单的等式,它确定一个数字的最后一位数(即x=123
, y=3
)。 D_sum
是x
中的数字之和(即x=123
,d_sum=3
)。
x=(x-y)/10
用于帮助计算下一个数字(即x=(123-3)/10=120/10=12
)。该程序正常工作,直到您输入一个超过10位数的数字(下面的屏幕)。
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int x,y;
int d_sum = 0;
cout << "x= ";
cin >> x;
while(x > 0)
{
y=x % 10;
d_sum++;
x = (x - y) / 10;
}
cout << d_sum << endl;
system("pause");
return 0;
}
屏幕:
答案 0 :(得分:1)
看看http://en.cppreference.com/w/cpp/language/types ,在您的平台上看起来int是32位。例如如果int是32位,则它可以存储的最大数量为2 ^ 31 = 2147483648。