多位数的处理
时间: 1ms 内存:128M
描述:
给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
输入:
一个不大于5位的数字
输出:
三行第一行 位数第二行 用空格分开的每个数字,注意最后一个数字后没有空格第三行 按逆序输出这个数
示例输入:
12345
示例输出:
5
1 2 3 4 5
54321
提示:
参考答案(内存最优[748]):
#include <stdio.h>
int main()
{
int n;
double m=0;
scanf("%d",&n);
if(n>1000000)
{
m += (n-1000000)*0.01;
n = 1000000;
}
if(n>600000)
{
m += (n-600000)*0.015;
n = 600000;
}
if(n>400000)
{
m += (n-400000)*0.03;
n = 400000;
}
if(n>200000)
{
m += (n-200000)*0.05;
n = 200000;
}
if(n>100000)
{
m += (n-100000)*0.075;
n = 100000;
}
m += n*0.1;
printf("%d\n",(int)m);
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int i,j,k,l,m;
int t=0;
int sum=0;
i=n/10000;
j=(n-10000*i)/1000;
k=(n-10000*i-j*1000)/100;
l=(n-10000*i-j*1000-k*100)/10;
m=n%10;
if(i!=0)
t++;
else
t=t+0;
if(j!=0)
t++;
else t+=0;
if(k!=0)
t++;
else t+=0;
if(l!=0)
t++;
else t+=0;
if(m!=0)
t++;
else t+=0;
sum=m*10000+l*1000+k*100+j*10+i;
cout<<t<<endl;
cout<<i<<" "<<j<<" "<<k<<" "<<l<<" "<<m<<endl;
cout<<sum<<endl;
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。