考研機試真題 浮點數加法 北京大學

2021-08-22 12:14:06 字數 1354 閱讀 7325

關鍵字:浮點數加法,可以用字串處理一下,轉換成大整數加法

題目:

求2個浮點數相加的和 題目中輸入輸出中出現浮點數都有如下的形式: p1p2…pi.q1q2…qj 對於整數部分,p1p2…pi是乙個非負整數 對於小數部分,qj不等於0

輸入描述:

對於每組案例,每組測試資料佔2行,分別是兩個加數。

輸出描述:

每組案例是n行,每組測試資料有一行輸出是相應的和。

輸出保證一定是乙個小數部分不為0的浮點數

示例1

輸入 0.111111111111111111111111111111

0.111111111111111111111111111111

輸出 0.222222222222222222222222222222

**:

#include 

#include

#include

#include

using

namespace

std;

const

int maxn = 1010;

int main(), d2[maxn] = , f1[maxn] = , f2[maxn] = , sumf[maxn] = , sumd[maxn] = , tmp[maxn] = ;

int len1 = s1.length(), len2 = s2.length();

int d1cnt = 0, d2cnt = 0, f1cnt = 0, f2cnt = 0;

for(i = 0; i < len1; ++i)

for(j = 0; j < i; ++j)

for(++i; i < len1; ++i)

for(i = 0; i < len2; ++i)

for(j = 0; j < i; ++j)

for(++i; i < len2; ++i)

// 計算小數部分

int maxl2 = max(f1cnt, f2cnt);

int carry = 0;

for(i = maxl2 - 1; i >= 0; --i)

// 計算整數部分

int maxl1 = max(d1cnt, d2cnt);

for(i = 0; i < maxl1; ++i)

if(carry > 0)

for(i = maxl1 - 1; i >= 0; --i)

cout

<< ".";

for(i = 0; i < maxl2; ++i)

cout

<< endl;

}}

浮點數加法 北京大學

題目鏈結 54.87 674.92 首先用字串讀入,把整數部分z和小數部分x分開存放在陣列中,並記錄長度zl和xl 首先將小數部分相加,從後往前加 然後保留進製carry。整數部分先逆序變成 45 476然後從前往後加,注意加到最大長度後,需要判斷進製carry是否為0,不為0時,還需要進製。最後輸...

考研機試真題 吃糖果 北京大學

關鍵字 動態規劃 遞推求解 斐波那契數列 題目描述 名名的媽媽從外地出差回來,帶了一盒好吃又精美的巧克力給名名 盒內共有 n 塊巧克力,20 n 0 媽媽告訴名名每天可以吃一塊或者兩塊巧克力。假設名名每天都吃巧克力,問名名共有多少種不同的吃完巧克力的方案。例如 如果n 1,則名名第1天就吃掉它,共有...

考研機試真題 合唱隊形 北京大學

關鍵字 動態規劃 最長不下降子串行 題目描述 n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學不交換位置就能排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2,k,他們的身高分別為t1,t2,tk,則他們的身高滿足t1 t2 ti ti ti 1 t...