#2018-5-1317:35
#武汉工程大学邮电与信息工程学院邮科院校区
#软件工程1604谷子毅
问题 1009: 整数的拆分
时间限制: 1Sec 内存限制: 128MB
题目描述 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字 输出 三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数 样例输入
12345
样例输出
5 1 2 3 4 5 54321
这个题想让大家学会的是一个函数sprintf(),我目前对自己的要求如下:
1.将一个数字转换为字符串:
【算法>dotcpp-----问题 1009: 整数的拆分】
文章图片
dotcpp-----问题 1009: 整数的拆分_第1张图片" width="521" height="440" style="border:1px solid black; ">
2.将两个数字合并为一个字符串:
文章图片
dotcpp-----问题 1009: 整数的拆分_第2张图片" width="583" height="489" style="border:1px solid black; ">
3.将两个字符串合并:
文章图片
dotcpp-----问题 1009: 整数的拆分_第3张图片" width="650" height="450" style="border:1px solid black; ">
接下来我们在做我们的这个题目:
#include
#include
int main(){
int x, i, len;
char s[10];
scanf("%d", &x);
sprintf(s, "%d", x);
len = strlen(s);
printf("%d\n", len);
for(i = 0;
i < len-1;
i++){
printf("%d ", s[i]-'0');
}
printf("%d\n", s[i]-'0');
for(i = len-1;
i >= 0;
i--){
printf("%d", s[i]-'0');
}
return 0;
}
其实可以更简单,把输入的那个数字直接当成字符串
#include
#include
int main(){
int len, i;
char s[10];
scanf("%s", &s);
len = strlen(s);
printf("%d\n", len);
for(i = 0;
i < len-1;
i++){
printf("%d ", s[i]-'0');
}
printf("%d\n", s[i]-'0');
for(i = len-1;
i >= 0;
i--){
printf("%d", s[i]-'0');
}
return 0;
}
推荐阅读
- c/c++|有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代...
- C/C++|C/C++ basis 02
- Qt实战|Qt+OpenCV联合开发(二十一)--图像翻转与旋转
- Qt实战|Qt+OpenCV联合开发(十四)--图像感兴趣区域(ROI)的提取
- Qt实战|Qt+OpenCV联合开发(十三)--通道分离与合并
- opencv|Qt+OpenCV联合开发(十六)--图像几何形状绘制
- Qt实战|Qt+OpenCV联合开发(十七)--随机数与随机颜色
- SNAT的MASQUERADE地址选择与端口选择
- IPTABLES的连接跟踪与NAT分析
- IPVS分析