一首关于存取大数值的问题?
飞机票有冗长的标识数字,例如47715497443。为了有效,最后一位数字必须与其他位的数字为整体除以7后的余数相匹配。(例如,4771549744除以7的余数为3。)编写程序检查机票号是否有效:Enter ticket number: 47715497443
VALID
提示:不要试图在单步操作中读取数,而是使用getchar函数逐个获取数字。一次执行一个数字的除法,小心除法中不要包含最后一位数。
我这是样做的:
#include <stdio.h>
int main(void)
{
int ch;
long int num;
num = 0;
while((ch = getchar()) != '\n')
{
num = num * 10 + ch - '0';
}
if((num / 10 % 7) == (num % 10))
{
printf("VALID");
}
else
{
printf("INVALID");
}
return 0;
}
但是发现:47715497443这个数值太大了,不知道解决??改用long double 也不行??请问怎么做呢?
[ 本帖最后由 keepc 于 2010-2-11 10:16 编辑 ]