鱼C论坛

 找回密码
 立即注册
查看: 3787|回复: 6

让我纠结了半年的难题:怎么让变量存储10个9?

[复制链接]
发表于 2011-4-27 08:54:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 旭日东升 于 2011-4-28 14:34 编辑

郁闷  这个难题在我设计程序时 让我纠结了很久 ...  特别是设计 【兔子加密程序】 的时候,那个郁闷啊 ...

看看例程哈

#include <stdlib.h>
#include <stdio.h>
int main()
{
    unsigned long int a=999999999;
    int i=0;
    printf("长整型变量 a 为【%d】\n\n",a);
    puts("请输入数值与变量a相乘:");
    scanf("%d",&i);
    printf("a*[%d] = [%d]\n\n",i,i*a);
    system("pause");
    }

运行后 结果
============================================
长整型变量 a 为【999999999】

请输入数值与变量a相乘:
100
a*[100] = [1215752092]

请按任意键继续. . .
============================================

纠结...

哪位大侠 能解决这个问题的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-27 10:20:10 | 显示全部楼层
大数计算哈,一般方法用数组来存储,分别想成后加上进制数就可以哈,试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-28 11:13:55 | 显示全部楼层
参考算盘啊,先算前面再算后面,用函数和数组。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-4-29 02:58:52 | 显示全部楼层
回复 小甲鱼 的帖子

能给个例程吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-10 20:30:47 | 显示全部楼层
回复 Love 梦想 的帖子
#include<iostream>
#include<set>
#include<vector>
#include<map>
#include<queue>
#include<algorithm>
using namespace std;
int main()
{   char a[100];
    int sum[100]={0},la,ls=100,n;
        for(int k=0;k<2;k++)
        {   gets(a);
            la=strlen(a);
            int t=ls-la;
            
            for(int i=la-1;i>=0;i--)
            {    
                 sum[i+t]+=a[i]-'0';
                 if(sum[i+t]>=10)    
                 {   sum[i+t]%=10;
                     sum[i+t-1]++;
                 }   
            }
              
          
        } 
        int t=0; 
       for(int i=0;i<=99;i++)
        
        if(sum[i]||t)
        {  printf("%d",sum[i]);t=1;  }
        
        if(!t)printf("0");
        cout<<"\n";
    system("pause");
    return 0;
}
这是个加法的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-18 00:25:08 | 显示全部楼层
回复 wangyexin 的帖子

有错哦

程序运行的结果  明显错误

9999999999999999999999999999999
1
99999999999999999999999999999100
请按任意键继续. . .

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-18 23:04:54 | 显示全部楼层
回复 Love 梦想 的帖子

谢谢指正 这个bug修正了 不知道还有错没
#include<iostream>
#include<set>
#include<vector>
#include<map>
#include<queue>
#include<algorithm>
using namespace std;
int main()
{   char a[100];
    int sum[100]={0},la,ls=100,n;
    
        for(int k=0;k<2;k++)
        {   gets(a);
            la=strlen(a);
            int t=ls-la;
            
            for(int i=la-1;i>=0;i--)
            {    
                 sum[i+t]+=a[i]-'0';
                 
                 int j=i;
                 while(sum[j+t]>=10)    
                 {   sum[j+t]%=10;
                     sum[j+t-1]++;
                     j--;
                 }   
            }
              
          
        } 
        int t=0; 
       for(int i=0;i<=99;i++)
        
        if(sum[i]||t)
        {  printf("%d",sum[i]);t=1;  }
        
        if(!t)printf("0");
        cout<<"\n";
    system("pause");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-20 00:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表