题目描述:给定一个正整数,求该数的位数并输出每位的数值。
输入:输入一个正整数n(1<= n <= 100000)。
输出:输出该整数的位数和每位的数值。
【样例】
输入:321
输出:1 2 3
解题思路:感觉这种输入输出样例乍一看字符串数组倒序输出就ok了,麻烦一点的话就是不断取余再除10输出哈哈,两种都行哈。
方法1:
字符串方法
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
char s[100005];
scanf("%s", s);
getchar(); //吸收会车
for(int i = strlen(s)-1; i >= 0; i--) {
printf("%c ", s[i]);
}
return 0;
}
终端结果:
方法2:
取余法
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
int n;
scanf("%d", &n);
while (n != 0) {
printf("%d ", n%10);
n /= 10;
}
return 0;
}
终端结果:
感觉题目的意思更加想让我们写第二种,但无所谓啦,能算出来的代码就是好代码,具体看法看各位小伙伴自己的,欧克就行
题目来源:(JLOJ2405)ACM-ICPC基本算法