CCF NOI1020 数字识别
问题链接:CCF NOI1020 数字识别。
时间限制:
1000 ms 空间限制: 262144 KB
题目描述
输入一个不多于四位的正整数,求出它是几位数,并分别打印出各位上的数字。
输入
输入一个不多于四位的正整数x。
输出
第一行输出x的位数num,接下来num行从高位到低位输出x的每一位上的数字。
样例输入
123
样例输出
3
1
2
3
数据范围限制
1<=x<=9999
问题分析
这个问题是根据输入整数值,计算其位数,同时计算各个位并且从高位到低位顺序输出。
取出整数的各个位,用除10取余的办法是比较方便的,但是顺序是从低位到高位的顺序取出的,所以有必要先存储在数组中备用。
程序说明
(略)
要点详解- 复杂问题分步计算的话,每一步通常都十分简单。
100分通过的C语言程序:
#include <stdio.h> #define N 4 int main(void) { int val, ans[N], len, i; scanf("%d", &val); len = 0; while(val) { ans[len++] = val % 10; val /= 10; } printf("%d\n", len); for(i=len-1; i>=0; i--) printf("%d\n", ans[i]); return 0; }