題目描述:
求2個浮點數相加的和
題目中輸入輸出中出現浮點數都有如下的形式:
p1p2…pi.q1q2…qj
對於整數部分,p1p2…pi是乙個非負整數
對於小數部分,qj不等於0
輸入:
對於每組案例,第1行是測試資料的組數n,每組測試資料佔2行,分別是兩個加數。
每組測試資料之間有乙個空行,每行資料不超過100個字元
輸出:
每組案例是n行,每組測試資料有一行輸出是相應的和。
輸出保證一定是乙個小數部分不為0的浮點數
樣例輸入:
2 0.111111111111111111111111111111
0.111111111111111111111111111111
#include
#include
struct biginteger
size_xiaoshu=0;
size_zhengshu=0;
} void set(char
str)
}//處理小數
i=tmp+1;
for (int j = i; j < len; ++j)
digit_xiaoshu[size_xiaoshu++]=str[j]-'0';
}biginteger operator +(const biginteger &a) constelse
max = a.size_xiaoshu;
for (int i = max -1; i >= 0; i--)
for (int i = max-1; i >= 0; i--)
}for (int i = 0; i < size_zhengshu||isum=digit_zhengshu[i]+a.digit_zhengshu[i]+carry;
ret.digit_zhengshu[ret.size_zhengshu++]=sum%10000;
carry=sum/10000;
}if (carry)
ret.digit_zhengshu[ret.size_zhengshu++]=carry;
return ret;
}void print()
printf(".");
if (size_xiaoshu==0)
printf("0");
else
for (int i = 0; i < size_xiaoshu; ++i)
printf("%d", digit_xiaoshu[i]);
printf("\n");
}};int main()
}return
0;}
九度OJ 1137 浮點數加法
本題本來想採用寫好的bigint模板直接套用,後來發現用高精度整數相當麻煩,於是直接使用字串加法器的方法進行重寫。debug過程 見 注釋。題目描述 求2個浮點數相加的和 題目中輸入輸出中出現浮點數都有如下的形式 p1p2.pi.q1q2.qj 對於整數部分,p1p2.pi是乙個非負整數 對於小數部...
OJ 1137 浮點數加法
include include include include using namespace std vectorve void getsum string a,string b int k a i 0 b j 0 inc int newk k 10 inc k 10 ve.push back n...
浮點數加法
include includechar input 2 1000 int n char point1 1000 point2 1000 char int1 1000 int2 1000 int pointans 1000 int intans 1000 bool pointcarry int foo...