分解任意整数的每一位数值
今天做水仙花经典题的时候,写了一个函数是分解任意整数的每一位数值,可是为啥位数较多(例如9876543210)的时候出现问题了呐,应该不是定义的类型不够大,
我已经定义为long型了,本人小白,还请大佬指教,小弟不胜感激。 /*********************************************************
*文件名称:分解多位数的各位
*文件标识:无
*功能实现:将任意多位数分解出各位数,并打印出来。
*当前版本:VC++6.0
*作 者:The Count of Monte Cristo
*完成日期:2018年7月30日
*********************************************************/
#include <iostream>
using namespace std;
const int n = 50;
int main()
{
cout << "请输入任意一个数:";
long num;
cin >> num;
long a;
int i = 0;
while (num)
{
a = num %10;
num = num / 10;
i++;
}
for (int j = 0; j < i; j++)
{
cout << "第" << j+1 << "位数是" << a << "\n";
}
system("pause");
return 0;
}
试试long long BngThea 发表于 2018-7-30 15:02
试试long long
我的编译器不支持long long型,long可以输入最大9223372036854775807,远远大于10位数呀 shiyideliutang 发表于 2018-7-30 15:09
我的编译器不支持long long型,long可以输入最大9223372036854775807,远远大于10位数呀
我用DEV C++运行试了试,long long确实可以了,但是为啥long不可以呐,long不是可以存储最大9223372036854775807的数吗??? shiyideliutang 发表于 2018-7-30 15:16
我用DEV C++运行试了试,long long确实可以了,但是为啥long不可以呐,long不是可以存储最大922337203685 ...
不同的机器long支持的位数并不相同 假如可以用unsigned的话建议用unsigned,因为这个不用负数,另外假如你的环境是vs的话建议用__int64。 BngThea 发表于 2018-7-30 15:26
不同的机器long支持的位数并不相同
嗯呐,明白了,多谢大佬的耐心回复。{:5_111:} 无符号整形 发表于 2018-7-30 20:11
假如可以用unsigned的话建议用unsigned,因为这个不用负数,另外假如你的环境是vs的话建议用__int64。
多谢大佬的耐心回复。
页:
[1]