0
已解决
董妙一
资深守护
资深守护
题目描述 Description
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入描述 Input Description
输入格式:
输入文件名为reverse.in 。
输入共1 行,一个整数 N。
输出描述 Output Description
输出格式:
输出文件名为reverse.out 。
输出共1行,一个整数,表示反转后的新数。
样例输入 Sample Input
输入样例#1: 123 输入样例#2: -380
样例输出 Sample Output
输出样例#1: 321 输出样例#2: -83
数据范围及提示 Data Size & Hint
数据范围
-1,000,000,000≤ N≤ 1,000,000,000 。
0
已采纳
高舒豪
中级光能
中级光能
freopen("1443.in","r",stdin);
freopen("1443.out","w",stdout);
int n;
int ge=0,res=0;
cin>>n;
while(n){
ge=n%10;
n=n/10;
res=res*10+ge;
}
cout<<res;
fclose(stdin);
fclose(stdout);
freopen和fcolse是文件操作,不开文件操作就删了
0
0
李奕歌
初级天翼
初级天翼
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int a,b,c=0;
scanf("%d",&a);
if(a<0){cout<<'-';a=-a;}
do{
b=a%10;
a=a/10;
c=c*10+b;
}while(a!=0);
cout<<c<<endl;
return 0;
}
0
马烨烨
初级守护
初级守护
只能用字符串,数字太大了,long long也存不下
#include<iostream>
using namespace std;
string s;
int main()
{
cin>>s;
if(s[0]=='-')
{
cout<<"-";
s.erase(0,1);
}
while(s[s.size()-1]=='0'&&s.size()!=1)
{
s.erase(s.size()-1,1);
}
for(int i=s.size()-1;i>=0;i--)
cout<<s[i];
return 0;
}
/**/
AC过的代码
0
高乐彤
修练者
修练者
long long n,a[20],i=1,k=0;
cin>>n;
if(n>0){
while(1){
if(n>=10){
a[i]=n%10;
i++;
n/=10;
}if(n<10){
a[i]=n;
break;
}
}for(int j=1;j<=i;j++){
if(a[j]==0){
k++;
}else{
break;
}
}for(int j=k+1;j<=i;j++){
cout<<a[j];
}
}else if(n<0){
n=0-n;
while(1){
if(n>=10){
a[i]=n%10;
i++;
n/=10;
}if(n<10){
a[i]=n;
break;
}
}for(int j=1;j<=i;j++){
if(a[j]==0){
k++;
}else{
break;
}
}
cout<<"-";
for(int j=k+1;j<=i;j++){
cout<<a[j];
}
}else{
cout<<0;
}
核心