| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 583 人关注过本帖
标题:关于大整数乘法,小弟写了个程序,数字一大输出就不对了,求帮助
只看楼主 加入收藏
绯苍幻想曲
Rank: 2
等 级:论坛游民
帖 子:34
专家分:49
注 册:2010-11-29
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
关于大整数乘法,小弟写了个程序,数字一大输出就不对了,求帮助
问题如题目描述,当数字很小的时候结果是正确的,如15,100这类的,但是如输入12345678900和98765432100后输出的数据就不对了,以下是源代码,求帮助!!程序的目的是实现两个200位以内的大整数乘法!!
程序代码:
#include<stdio.h>
#include<string.h>
int productx(int x,int y)
{
    int product;
    x=x-'0';
    y=y-'0';
    product=x*y;
    return product;
}
int combination(int x,int y)
{
    int add;
    add=x+y;
    return add;
}
int main()
{
    char a[200],b[200];
    int i,j,product,c[200][402]={{0}},num1,num2,n,flag=1;
    scanf("%s",a);
    scanf("%s",b);
    n=strlen(a)+strlen(b);
    for(i=0;i<strlen(a);i++)
    {
        for(j=0;j<strlen(b);j++)
        {
            c[i][j+i+1]+=productx(a[i],b[j]);
        }
    }
    for(j=0;j<(2*strlen(b)+1);j++)
    {
        for(i=1;i<=strlen(a);i++)
        {
            c[0][j]=combination(c[0][j],c[i][j]);
        }
    }
    for(j=strlen(b)+2;j>=0;j--)
    {
        if(c[0][j]>=10)
        {
            c[0][j-1]+=c[0][j]/10.0;
            c[0][j]=c[0][j]%10;
        }
    }
    for(j=0;j<n;j++)
        if(flag==1&&c[0][j]==0) continue;
        else
        {
            printf("%d",c[0][j]);
            flag=0;
        }
        if(c[0][1]==0) printf("0");
}



[ 本帖最后由 绯苍幻想曲 于 2010-12-24 22:53 编辑 ]
搜索更多相关主题的帖子: 源代码 
2010-12-24 18:16
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:4 
估计你要把变量定义成double型了,你那数据大得很啊。long都不行了。

   唯实惟新 至诚致志
2010-12-24 20:38
粤晨阳
Rank: 1
等 级:新手上路
帖 子:4
专家分:8
注 册:2010-11-6
收藏
得分:4 
这个程序有什么目的?
2010-12-24 20:56
绯苍幻想曲
Rank: 2
等 级:论坛游民
帖 子:34
专家分:49
注 册:2010-11-29
收藏
得分:0 
顶起.....
2010-12-24 22:54
绯苍幻想曲
Rank: 2
等 级:论坛游民
帖 子:34
专家分:49
注 册:2010-11-29
收藏
得分:0 
顶...
2010-12-26 11:18
快速回复:关于大整数乘法,小弟写了个程序,数字一大输出就不对了,求帮助
数据加载中...
 
   



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

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