Description :
给一个不多于5位的正整数,要求:
-
求出它是几位数;
-
分别输出每一位数字,例如原数为321,应输出3 2 1。
-
按逆序输出各位数字,例如原数为321,应输出123。
Input :
输入一个正整数n(1≤n≤999991≤n≤99999)。
Output :
每次输入对应三行输出。 第一行为一个正整数,表示n的位数。 第二行为若干整数,表示n的每一位数字。要求每两个数字间用空格隔开,最后一个数字后不要空格。 第三行为一个正整数,表示n的逆序数。
12345 631
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]单独输出