已知一个正整数n,n的范围是1—999999999。你的任务是把这个整数分解为单个数字,然后从左至右依次打印出每一个数字。例如将整数“12345”分解,得到“1 2 3 4 5”。
输入格式:
只有一个正整数。测试用例保证合法。
输出格式:
只有一行,为输入整数的拆分结果,相邻两个数字之间有一个空格,最后一个数字后是换行符。例如12345的拆分结果为:1 2 3 4 5。
输入样例:
12345
输出样例:
1 2 3 4 5
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
答案:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
int n,k,m=0;//k等于n,m用来算有多少位数
scanf("%d", &n);
k = n;
for (k > 1; k / 10 >= 1; m++) {
k = k/ 10;
}
for (n > 1; m >= 0;m--) {
printf("%d ", n / (1* (int)pow(10, m)));
n = n % (1 * (int)pow(10, m));
}
return 0;
}
写的时候可以自己在纸上先运行一遍,算出各循环每一轮各变量值,注意pow函数的数据类型是double,可在变量前用(int)来转换为int类型。
本文仅用来记录练习作业。