本文主要是介绍1089:数字反转--信息学一本通(c++),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
NOIP信息学奥赛资料下载
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 17690 通过数: 8982
【题目描述】
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零,例如输入-380,反转后得到的新数为-83。
【输入】
输入共 1 行,一个整数N。
-1,000,000,000 ≤ N≤ 1,000,000,000。
【输出】
输出共 1 行,一个整数,表示反转后的新数。
【输入样例】
123
【输出样例】
321
【提示】
【输入输出样例 2】
输入:
-380
输出:
-83
【来源】
NO
代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{int n,sum=0,a,b=10,c=0;scanf("%d",&n);while(n%10==0)
n=n/10;if(n>=0)
{while(n>sum)
{a=(n%b-c)/(b/10);sum=a*(b/10)+sum;b=10*b;c=a;cout<<a;
}
}if(n<0)
{cout<<"-";while(n<sum)
{a=(n%b-c)/(b/10);sum=a*(b/10)+sum;b=10*b;c=a;cout<<-a;
}
}
return 0;
}
这篇关于1089:数字反转--信息学一本通(c++)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!