Description :
给一个不多于5位的正整数,要求:
-
求出它是几位数;
-
分别输出每一位数字,例如原数为321,应输出3 2 1。
-
按逆序输出各位数字,例如原数为321,应输出123。
Input :
输入一个正整数n(1≤n≤999991≤n≤99999)。
Output :
每次输入对应三行输出。 第一行为一个正整数,表示n的位数。 第二行为若干整数,表示n的每一位数字。要求每两个数字间用空格隔开,最后一个数字后不要空格。 第三行为一个正整数,表示n的逆序数。
- Sample Input
- Raw
12345 631
- Sample Output
- Raw
5
1 2 3 4 5
54321
3
6 3 1
136
Hint :
如果提交结果出现Presentation Error,请重点检查是不是第二行输出的数据中,输出的空格是不是不符合题意。(即:输出最后一个数后是否多输出一个空格?)
代码:
#include <stdio.h>
#include <stdlib.h>
int a[1000000];
int main()
{
int n,i;
scanf("%d",&n);
int count=0;
while(n)
{
a[i]=n%10;
count=count*10+a[i];//求倒序
n=n/10;
i++;//记位数
}
printf("%d\n",i);//输出是几位数并换行
for(int j=i-1;j>0;j--)
{
printf("%d ",a[j]);//输出前4个数字
}
printf("%d\n",a[0]);//换行
printf("%d",count);//输出倒序
return 0;
}
//example:12345,a[0]=5,a[1]=4;a[2]=3,a[3]=2,a[4]=1
//所以j=4=5-1=i-1
//因为printf("%d ",a[0])在输出的时候会输出5和一个空格
//题目只要求输出数字,所以将a[0]单独输出
文章出处登录后可见!
已经登录?立即刷新