對於乙個整數x,定義操作rev(x)為將x按數字翻轉過來,並且去除掉前導0。例如:
如果 x = 123,則rev(x) = 321;
如果 x = 100,則rev(x) = 1.
現在給出整數x和y,要求rev(rev(x) + rev(y))為多少?
輸入描述:
輸入為一行,x、y(1 ≤ x、y ≤ 1000),以空格隔開。
輸出描述:
輸出rev(rev(x) + rev(y))的值
輸入例子:
123 100
輸出例子:
223
哎,開始不知道咋想的,這題硬是做了很久,被自己給坑了。
題意分析:
觀察可以發現,一共進行了兩次翻轉,仔細一想,轉過來轉過去,其實就是沒有翻轉,只需要去除前導0和後導0即可。
rev(x) + rev(y)計算的時候,由於翻轉的原因,每乙個數都是把後導0刪除掉,但是字串再加的時候,是從前往後加,所以不需要翻轉。再計算外部的rev的時候,由於前面沒有翻轉,所以這裡也不需要翻轉,只需要去掉之前計算的前導0,然後直接輸出即可。
#include #include #include #include using namespace std;
char a[1010], b[1010], c[1010];
int main()
else
}if(num)
c[j] = '\0';
// 去除前導0
bool flag = 0;
for(i = 0; i < strlen(c); i ++)
if(c[i] == '0' && flag == 0)
else
printf("\n");
return 0;
}
程式設計題 翻轉翻轉
時間限制 1秒 空間限制 262144k 給定乙個n m的矩陣,在矩陣中每一塊有一張牌,我們假定剛開始的時候所有牌的牌面向上。現在對於每個塊進行如下操作 翻轉某個塊中的牌,並且與之相鄰的其餘八張牌也會被翻轉。如上矩陣所示,翻轉中間那塊時,這九塊中的牌都會被翻轉一次。請輸出在對矩陣中每一塊進行如上操作...
演算法題 數字翻轉
對於乙個整數x,定義操作rev x 為將x按數字翻轉過來,並且去除掉前導0。例如 如果 x 123,則rev x 321 如果 x 100,則rev x 1.現在給出整數x和y,要求rev rev x rev y 為多少?輸入描述 輸入為一行,x y 1 x y 1000 以空格隔開。輸出描述 輸出...
python 刷題 數字翻轉
對於乙個整數x,定義操作rev x 為將x按數字翻轉過來,並且去除掉前導0。例如 如果 x 123,則rev x 321 如果 x 100,則rev x 1.現在給出整數x和y,要求rev rev x rev y 為多少?輸入為一行,x y 1 x y 1000 以空格隔開。輸出rev rev x ...