| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1232 人关注过本帖
标题:一首关于存取大数值的问题?
只看楼主 加入收藏
doubleflygo
Rank: 2
等 级:论坛游民
帖 子:26
专家分:50
注 册:2010-1-22
收藏
得分:1 
两种尝试:
        1.到网上搜了一下能被7整除的数的特征:用一个数的最末一位数字的2倍减去原数去掉末位后所得到的数的差的绝对值,如果能被7整除,那这个数就能被7整除,(如果为零当然一样了) 但由于楼主所给的数太大,就算有了其他算法,但是仍然解决不了数冗长的问题;
        2.这时候不妨将我们的对7做除法的过程进行分解然后让计算机去做;也就是7楼的算法:先预读计算机能够识别的位数对7进行取余运算,将所得的余数作为最高位与下面的数组合之后继续对7进行取余,直至取余之后与最后一位数相同;程序如下:
#include"stdio.h"
#include"conio.h"
void main()
{
    char ch;
    int sum=0,i,ln=0,t;
     printf("please input the ticket number:");
     ch=getch();
     printf("%c",ch);
     for(i=0;ch!=13;i++)
     {
        t=sum;//t用来记住输入最后一个数字之前的余数
        ln=ch-'0';//用来记住最后一个数
        sum=sum*10+ch-'0';
        sum=sum%7;
        ch=getch();
        printf("%c",ch);
     }
     printf("\n");
     if((ln-t)%7==0)
         printf("valid!");
     else
         printf("invalid!");
}


[ 本帖最后由 doubleflygo 于 2010-2-18 10:04 编辑 ]
2010-02-17 18:08
快速回复:一首关于存取大数值的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015890 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved