标题:疑似数据溢出问题
只看楼主
我勒个去
Rank: 2
等 级:论坛游民
帖 子:21
专家分:20
注 册:2012-3-14
结帖率:83.33%
已结贴  问题点数:18 回复次数:4 
疑似数据溢出问题
#include<stdio.h>
void main()
{
    long long i,x,y;
    long long last=1;    /*变量last保存求X的Y次方过程中的部分乘积的后6位*/
    printf("Input X:");
    scanf("%ld**%ld",&x);
    for(i=1;i<=x;i++)                /*X自乘Y次*/
        last=last*x%1000000;/*将last乘X后对1000000取模,即求积的后6位*/
    printf("%ld\n",last);
    printf("The last 6 digits of %ld** is:%d\\n",x,last%1000000); /*打印结果*/
}
当少个0是可以求末尾4位,多个0就为负的了,这是咋回事啊?(如:x=109376)
搜索更多相关主题的帖子: long 
2012-05-03 22:44
xuzejia_love
Rank: 2
等 级:论坛游民
帖 子:41
专家分:49
注 册:2010-12-5
得分:13 
这源代码真心看不懂

学的是语法,要的是算法。
2012-05-03 23:52
xuzejia_love
Rank: 2
等 级:论坛游民
帖 子:41
专家分:49
注 册:2010-12-5
得分:0 
能不能说一下这程序是什么目的?

学的是语法,要的是算法。
2012-05-03 23:55
我勒个去
Rank: 2
等 级:论坛游民
帖 子:21
专家分:20
注 册:2012-3-14
得分:0 
程序的目的:如果x是几位数,则求x的x次方后的结果的最后几位数!
2012-05-04 00:11
xuzejia_love
Rank: 2
等 级:论坛游民
帖 子:41
专家分:49
注 册:2010-12-5
得分:0 
程序代码:
#include<stdio.h>
/*如果我没猜错的话,你是想让x自乘y次之后,自乘结果的后6位*/
int main()
{
    long i,x,y;
    long last=1;                    /*变量last保存求X的Y次方过程中的部分乘积的后6位*/
    printf("Input X:");
    scanf("%ld",&x);
    printf("Please input the times of squaring you want:");
    scanf("%ld",&y);
    for(i=1;i<=y;i++)                /*X自乘Y次*/
        last=last*x%1000000;        /*将last乘X后对1000000取模,即求积的后6位*/
    printf("%ld\n",last);
    printf("The last 6 digits of the squaring of %ld, which is in %ld times, is:%d\n",x,y,last%1000000); /*打印结果*/
    return 1;
}


好久没上论坛了,今天突然看到这贴结了,先前只是扫过而已,还没回答问题就拿到了分,感觉惭愧。今天想了一下,然后做了点修改,你看一下这样行不?

学的是语法,要的是算法。
2012-05-18 09:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-366899-1-1.html




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

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