總思路是把兩個數都變成科學計數法然後比較有效位和指數是否相同。
具體操作:
(1)先要去掉前導零。如果是「000000」這種情況,去完前導零後字串就沒了,這時候要讓指數e為0
(2)此時可能字串的第一位是小數點,這個時候把小數點去掉,然後找字串中第乙個不為零的字元所在的位置,並且把首個不為零的的字元前的所有零都去掉。另外每出現乙個0,e--。注意有可能字串是000.00000的情況,如果是這種情況要讓e為0
(3)此時字串的第一位不是小數點而是乙個非零數,去找小數點的位置然後去掉小數點,另外小數點前有幾位數e就加幾。
(4)此時宣告乙個string型別的變數ans,根據題目要求的位數把字串中的字元匯入ans,如果不夠在ans後面添0,最後返回ans。
以上就是solve函式的思路。
#include#include#includeusing namespace std;
/*去掉前導零
變為科學計數法
*/ string solve(string s,int &e, int n)
if(s.size()==0)
if(s[0]=='.')
} else
e++;
} }if(s.size()==0)
for(int i=0; i>n>>s1>>s2;
s1 = solve(s1,e1,n);
s2 = solve(s2,e2,n);
if(s1==s2&&e1==e2)
else
return 0;
}
1060 逆序數字
1060 逆序數字 時間限制 1 sec 記憶體限制 30 mb 提交 21481 解決 14196 狀態 討論版 提交 命題人 admin 題目描述 輸入乙個正整數,將其逆序輸出,每個數字後有乙個空格。輸入輸入乙個正整數n,你可以假設n在int範圍內 輸出將n按其逆序輸出,每個數字後有乙個空格,輸...
1060 合法棧輸出
本題是一道模擬題,模擬資料進棧與出棧的順序,本題需要解決兩個子問題 第乙個問題 用什麼的儲存結構模擬進棧與出棧 首先進棧可以用乙個佇列a和棧b來模擬即a佇列的首元素進b棧後便刪除a的佇列的首元素 佇列c模擬出棧的順序即b棧出乙個資料進c佇列,如圖所示為模擬情況 第二個問題 如何遍歷所有的進棧出棧情況...
關於sdnuoj1060反思
給定 n 1 n 10000000 個正整數 2147483647 找出其中的第k 1 k 10 大數。第一行,兩個整數n,k,第二行n個整數 第k大數 正解 include include include using namespace std int main for int i 0 i n i...