c561 - Bert 愛搗蛋
題目描述
題目要求找出給定 n 個正整數中,倒轉後的最大值。CTF 先將所有值倒轉後再給 Bert,因此題目實際要求的是找出倒轉後的數字中最大的那個。
解題思路
題目描述中提到 CTF 先將所有值倒轉後再給 Bert,因此實際上題目要求的是找出 n 個正整數中,倒轉後的最大值。程式碼中,對於每個輸入的數字,使用迴圈將其倒轉,然後比較倒轉後的數字與目前的最大值,更新最大值。最後輸出找到的最大值。
複雜度分析
- 時間複雜度: O(n * k),其中 n 是輸入數字的個數,k 是每個數字的位數。最壞情況下,k 等於 1000000 的位數,也就是 7。因此,時間複雜度可以近似為 O(n)。
- 空間複雜度: O(n),用於儲存輸入的數字陣列。
程式碼
#include <stdio.h>
int main(){
int a,max,i;
scanf("%d",&a);
int b[a],c=0;
for(i=0,max=0;i<a;i++,c=0){
scanf("%d",&b[i]);
while(b[i]>0){
c+=b[i]%10;
c*=10;
b[i]/=10;
}
c/=10;
if(c>max)
max=c;
}
printf("%d\n",max);
}