Reverse Number
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5052 Accepted Submission(s): 2352
Specially, I give my best regards to all freshmen! You are the future of HDU ACM! And now, I must tell you that ACM problems are always not so easy, but, except this one... Ha-Ha!
Give you an integer; your task is to output its reverse number. Here, reverse number is defined as follows:
1. The reverse number of a positive integer ending without 0 is general reverse, for example, reverse (12) = 21;
2. The reverse number of a negative integer is negative, for example, reverse (-12) = -21;
3. The reverse number of an integer ending with 0 is described as example, reverse (1200) = 2100.
#include<stdio.h> #include<string.h> #define MAXN 10000 char a[MAXN]; //定义字符数组 int main() { int t, n, i, len; int k; scanf("%d", &t); while( t-- ) { scanf("%s", &a); //输入字符串 len = strlen(a); for(k = len - 1; k >= 0; k--) { if(a[k] != '0') //筛选,非零位部分a[k] break; } if(a[0] == '-') { printf("-"); for(i = k; i >=1; i--) // 将k 相对应地 保存 在i中 printf("%c", a[i]);//反转 for(i = k + 1; i < len; i++) printf("0"); } else { for(i = k; i >=0; i--) printf("%c", a[i]); for(i = k + 1; i < len; i++) printf("0"); } printf(" "); } return 0; }
#include<stdio.h>
#include<string.h>
#define MAXN 10000
char a[MAXN]; //定义字符数组
int main()
{
int t, n, i, len;
int k;
scanf("%d", &t);
while( t-- )
{
scanf("%s", &a); //输入字符串
len = strlen(a);
for(k = len - 1; k >= 0; k--)
{
if(a[k] != '0') //筛选,非零位部分a[k]
break;
}
if(a[0] == '-')
{
printf("-");
for(i = k; i >=1; i--) // 将k 相对应地 保存 在i中
printf("%c", a[i]);//反转
for(i = k + 1; i < len; i++)
printf("0");
}
else
{
for(i = k; i >=0; i--)
printf("%c", a[i]);
for(i = k + 1; i < len; i++)
printf("0");
}
printf("
");
}
return 0;
}
#include<iostream> #include<string> using namespace std; int main() { int n; cin>>n; string s; while(n--) { cin>>s; int begin = 0,end,i,j; if(s[0] == '-')begin = 1; while(s[begin] == '0')begin++; end = s.size()-1; while(s[end] == '0')end--; reverse(s.begin()+begin,s.begin()+end+1); cout<<s<<endl; } return 0; }
#include<iostream>
#include<string>
using namespace std;
int main()
{
int n;
cin>>n;
string s;
while(n--)
{
cin>>s;
int begin = 0,end,i,j;
if(s[0] == '-')begin = 1;
while(s[begin] == '0')begin++;
end = s.size()-1;
while(s[end] == '0')end--;
reverse(s.begin()+begin,s.begin()+end+1);
cout<<s<<endl;
}
return 0;
}