多位数的处理

多位数的处理

时间: 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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注