1. 程式人生 > >洛谷-P1307 數字反轉

洛谷-P1307 數字反轉

題目描述

給定一個整數,請將該數各個位上數字反轉得到一個新數。新數也應滿足整數的常見形式,即除非給定的原數為零,否則反轉後得到的新數的最高位數字不應為零(參見樣例2)。

 


坑點,用陣列儲存時負數只需一個符號,還有去除前導零。

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
void exchange(int n){
	if(n == 0) {printf("0\n");return; }
	int a[15];
	int b = n,cnt = 0;
	while(b){
		a[cnt++] = b%10;
		b/=10;
	}
	if(n<0) cout<<'-';
	int flag = 0;
	for(int i = 0;i < cnt;i++){
		if(a[i] != 0) flag = 1;
		if(flag) printf("%d",abs(a[i]));
	}
	printf("\n");
}
int main(){
	int n;
	while(~scanf("%d",&n))
		exchange(n);
}

Test_Data

1          1
0          0
666           666
5200         25
002500           52
40206030        3060204
999888777        777888999