A. 如何實現用c++語言編寫存放40位的整數
1,用3個int型的變數,聯合表示
2,用字元串存放
B. java裡面如何定義一個40位的整數
可以用一個長度為40的數組,沒位數值為0-9,這樣的數組算是一個數組
C. C++裡面大於longlong的數字怎麼聲明啊,比如一個40位的數字(十進制)……
沒有哦,你可以用高精度,例如高加,你只需改變N的值(這里是500位的)就可以了:
#include<iostream>
#include<string>
using namespace std;
const int N=501;
string a,b;
int c[N],d[N],e[N],k;
int main()
{
int i,j;
cin>>a>>b;
for(i=0;i<a.size();i++)
c[i]=a[a.size()-i-1]-'0';
for(i=0;i<b.size();i++)
d[i]=b[b.size()-i-1]-'0';
if (a.size()>=b.size())
k=a.size();
else
k=b.size();
for(i=0;i<k;i++)
{
c[i]+=d[i];
if(c[i]>=10)
{
c[i]=c[i]%10;
c[i+1]++;
}
}
if(!c[k])
for(j=k-1;j>=0;j--)
cout<<c[j];
else
for(j=k;j>=0;j--)
cout<<c[j];
return 0;
}
D. 大整數加法 C語言 求代碼 要求如下
#include<stdio.h>
#include<string.h>
voidreverse(char*s)/*將字元串逆置*/
{
intlength;
inti=0;
chartemp;
length=strlen(s);
while(i<length-i-1)
{
temp=s[i];
s[i]=s[length-i-1];
s[length-i-1]=temp;
i++;
}
}
voidAddBigNum(char*s1,char*s2,char*result)
{
intlen1=strlen(s1);
intlen2=strlen(s2);
intacc=0,temp,i;/*acc為進位標記*/
if(s1==NULL||s2==NULL||result==NULL)
{
return;
}
reverse(s1);
reverse(s2);
for(i=0;i<len1&&i<len2;i++)
{
temp=s1[i]-'0'+s2[i]-'0'+acc;/*計算每位的實際和*/
result[i]=temp%10+'0';/*通過求余數來確定每位的最終值*/
if(temp>=10)/*通過這個if..else..條件來判斷是否有進位,並設置進位值*/
acc=1;
else
acc=0;
}
if(i<len1)/*兩個加數位數不同*/
{
for(;i<len1;i++)
{
temp=s1[i]-'0'+acc;/*依舊要考慮進位,比如9999+1的情況*/
result[i]=temp%10+'0';
if(temp>=10)
acc=1;
else
acc=0;
}
}
if(i<len2)
{
for(;i<len2;i++)
{
temp=s2[i]-'0'+acc;
result[i]=temp%10+'0';
if(temp>=10)
acc=1;
else
acc=0;
}
}
if(acc==1)/*考慮如:123+911=1034的情況,如果不增加這個條件會得到結果為034,進位被舍棄*/
result[i++]='1';
result[i]='