-6
私はC言語での初心者です.2つの配列を加算、減算、乗算して別の配列に配置する必要があります。 add関数では、オーバーフローが発生した場合にfalseを返す必要があります。 sub関数では、n1がn2未満の場合はfalseを返す必要があります。 乗算関数では、オーバーフローが発生した場合にfalseを返す必要があります。 私は0で、次の基数、最初のi完全な配列を持っているし、その後、最小重量の数iが234を入れた場合のBigIntは、インデックス79 0000 ... 00234インデックス0Add、Sub、Multiply Arrays
#define MaxDigits 80
typedef unsigned char byte;
typedef byte BigInt [MaxDigits];
になりますインデックスには0例ですこれは、私は1つを追加しなければならないものである:
bool addBigInt(const BigInt n1, const BigInt n2, BigInt res){
int carry=0;
for(int i=0;i<80;++i){
if(n1[i]+n2[i]>9){
carry=res[i]%10;
}
res[i]=n1[i]+n2[i]+carry;
}
if((n1[79]+n2[79]>9) ||(n1[78]+n2[78]>10 && n1[79]+n2[79]>8)){
return false;
}
else{
return true;
}
}
サブ1:
bool subBigInt( const BigInt n1, const BigInt n2, BigInt res) {
for(int i=0;i<80;++i){
res[i]=n1[i]-n2[i];
}
for(int i=80;i>0;i--){
if(n1[i]-n2[i]<0){
return false;
}
}
return true;
}
私はあなたが私は本当にapreciateだろう私を助けることができれば本当に、boolsで作業する方法を知っている知りません。 がさらにについてあなた
ようなことができ 'BigInt'は何ですか? –
'BigInt'型の宣言? –
#define MaxDigits 80、typedefバイトBigInt [MaxDigits]; –