数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 6334|回复: 7

两个很大的数相乘?(用C++)

[复制链接]
发表于 2006-5-10 19:51 | 显示全部楼层 |阅读模式
我写了一个,但是它的数组str3[]有问题,希望知道我错在什么位置的人给我指出,谢谢!!![br][br]-=-=-=-=- 以下内容由 1205xy 时添加 -=-=-=-=-
[br][br]-=-=-=-=- 以下内容由 1205xy 时添加 -=-=-=-=-
发表于 2006-5-10 20:28 | 显示全部楼层

两个很大的数相乘?(用C++)

什么题目?
发表于 2006-5-11 16:34 | 显示全部楼层

两个很大的数相乘?(用C++)

你写的程序在哪?写出来看看
 楼主| 发表于 2006-5-11 19:57 | 显示全部楼层

两个很大的数相乘?(用C++)

题目是两个很大的数相乘,当然用整型是不够的。
发表于 2006-5-12 12:29 | 显示全部楼层

两个很大的数相乘?(用C++)

你说你的数组有问题,把程序写出来帮你看看是什么问题.
 楼主| 发表于 2006-5-15 08:16 | 显示全部楼层

两个很大的数相乘?(用C++)

我是上传了,但附件没能上传上啊!
是在浏览里查找,然后立即上传应该不会有错的啊!
发表于 2006-5-15 17:35 | 显示全部楼层

两个很大的数相乘?(用C++)

能不能简要说明一下你写的程序中主要变量的作用以及算法的基本思路和步骤,因为程序没有注释,所以看起来是比较费劲的,你的程序和长,我感觉可以用一个更简单的算法,总之,你简单解释一下思路和步骤就行。
发表于 2006-12-5 20:20 | 显示全部楼层

两个很大的数相乘?(用C++)

[这个贴子最后由idealguy在 2006/12/05 08:25pm 第 2 次编辑]

帮6楼的贴出来
  1. &#35;include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.    char str1[1000],str2[1000],str3[1000],sum[1000],str[1000];
  6.    int a,i,n=0,j,s,k,m,len3;
  7.    char t;
  8.    cin>> str1 >> str2;
  9.    int len=strlen(str2);
  10.    for(i=0;i<len;i++)
  11.       n=n*10+(str2[i]-';0';);
  12.    k=strlen(str1)-1;
  13.    for(i=k;i>=0;i--)
  14.    {
  15.       str3[i]=str1[i];
  16.    }
  17.    for(a=1;a<n;a++)
  18.    {
  19.      k=strlen(str1)-1;
  20.      m=strlen(str3)-1;
  21.      for (i=m;i>m-k,k>=0;i--,k--)
  22.      {
  23.         t=str1[k];
  24.         str[i]=t;
  25.      }
  26.      s=0;
  27.      for(;m>=m-k;m--)
  28.      {
  29.         sum[m]=(str3[m]-';0';+(str[m]-';0';)+s)%10+';0';;
  30.         s=(str3[m]-';0';+(str[m]-';0';)+s)/10;
  31.      }
  32.      while(m>=0)
  33.      {
  34.         sum[m]=(str3[m]-';0';+s)%10+';0';;
  35.         s=(str3[m]-';0';+s)/10;
  36.         m--;
  37.      }
  38.      if(s!=0)
  39.      {
  40.         for(j=len3,m=len3-1;j>=1,m>=0;j--,m--)
  41.         {
  42.           t=sum[m];
  43.           sum[j]=t;
  44.         }
  45.         sum[0]=s+';0';;
  46.         len3=strlen(sum);
  47.         for(n=0;n<=len3;n++)
  48.           str3[n]=sum[n];
  49.      }
  50.      else
  51.      {
  52.         len3=strlen(sum);
  53.         for(n=0;n<len3;n++)
  54.           str3[n]=sum[n];
  55.      }
  56.    }
  57.    int l=strlen(str3);
  58.    for(n=0;n<l;n++)
  59.       cout<<str3[n];
  60.    return 0;
  61. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-5-18 04:12 , Processed in 0.064453 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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