[CODEVS1130]数字反转

题目描述 Description

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形
式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零.

这是一道水题。我必须承认。蒟蒻表示很开心~~
思路如下:
读入数据后把数字转换为字符,再进行数组反转
也就是c[len-i-1]=s[i];必须重视的一点是数组是从0开始的!!
关于去除前导零:
使用sscanf函数可直接转换~
判断首位是否为零,如果为零,len——,直到不是零,输出原数
 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 char s[10],c[10];
 5 using namespace std;
 6 int main()
 7 {
 8     int n;
 9     cin>>n;
10     sprintf(s,"%d",n);
11     int len=strlen(s);
12     for(int i=0;i<len;++i)
13      c[len-i-1]=s[i];
14     if(n<0) cout<<"-";
15     sscanf(c,"%d",&n);//转换为int类型后免去了去除前导0的步骤
16     cout<<n;
17     return 0;
18 }
 
原文地址:https://www.cnblogs.com/TYH-TYH/p/4702920.html