c304 - PB:轉換之塔
題目描述
題目要求讀取一個正整數,將其反轉後,將原始數字與反轉後的數字相加,並輸出結果。輸入有多組測試數據,直到 EOF 為止。
解題思路
這題的解題思路非常直接。對於每個輸入的數字,我們需要計算其反轉後的數字,然後將原始數字和反轉後的數字相加。反轉數字的過程可以通過不斷取餘數和除以 10 來實現。
複雜度分析
- 時間複雜度: O(log n),其中 n 是輸入數字。這是因為反轉數字的過程需要迭代的次數與數字的位數成正比,而數字的位數與 log n 成正比。
- 空間複雜度: O(1),因為我們只使用了幾個常數大小的變數。
程式碼
#include <stdio.h>
int main(){
long long int a;
while(scanf("%lld",&a)>0){
long long int b=0,c=a;
while(c>0){
b*=10;
b+=c%10;
c/=10;
}
printf("%lld\n",a+b);
}
}