NOIP2011数字反转
题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(如:输入-380,输出-83)。
输入
输入共1行,一个整数N。
输出
输出共1行,一个整数,表示反转后的新数。
样例输入
123
样例输出
321
提示
-1,000,000,000<=N<=1,000,000,000。
NOIP2011 普及组 reverse
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include<iostream> #include<cstdio> #include<cstring> using namespace std; string a,b; int ans=-1,total; bool jud(int x) { if(x>0&&b[x-1]!=' ')return 0; for(int k=0;k<a.length();k++) if(b[x+k]!=a[k])return 0; if(b[x+a.length()]!=' ')return 0; if(ans==-1)ans=x; total++; return 1; } int main() { getline(cin,a);getline(cin,b); for(int i=0;i<a.length();i++) if(a[i]>='a')a[i]-=('a'-'A'); for(int i=0;i<b.length();i++) if(b[i]>='a')b[i]-=('a'-'A'); for(int i=0;i<b.length();i++) jud(i); if(ans==-1)printf("-1"); else printf("%d %d",total,ans); return 0; } |
代码错了,这是上一题的啊?!(+﹏+)~