ZSTUOJ平台刷题①:Problem 3531.--逆序数
3531: 逆序数
Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 3831 Solved: 2044
Description
输入一个任意整数(int型),输出其位数并逆序输出该数。
Input
输入一个任意整数(int型)
Output
输出其位数及逆序数
Sample Input
12345 -123 100
Sample Output
54321 5 -321 3 1 3
一般解答(不用考虑0处于非零数字之间位置想要保留的情况):
代码如下:
#include<bits/stdc++.h> using namespace std; int main(){ int n; while(cin>>n){ int sum=0;int b=n,c=n; while(n){ int a=n%10; if(((n==b&&n<0)||b>0)&&a!=0) cout<<a; else if(b<0) cout<<-a; sum++; n/=10; } cout<<" "<<sum<<endl; } return 0; }
#include<bits/stdc++.h> using namespace std; int main(){ int n; while(cin>>n){ int sum=-1;int b=n,c=n; while(n){ int a=n%10; c/=10; while(!a&&c%10==0){ a=n%10; n/=10; sum++; } if(((n==b&&n<0)||b>0)) cout<<a; else if(b<0) cout<<-a; if(n==b) sum+=2; else sum++; n/=10; } cout<<" "<<sum<<endl; } return 0; }