# Number Manipulation# Basic Math

c304 - PB:轉換之塔

🔗 前往 ZeroJudge 原題

題目描述

題目要求讀取一個正整數,將其反轉後,將原始數字與反轉後的數字相加,並輸出結果。輸入有多組測試數據,直到 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);
	}
}

Discussion