1006 换个格式输出整数——C++实现
题目
1006 换个格式输出整数 (15 point(s))
让我们用字母
B
来表示“百”、字母S
表示“十”,用12...n
来表示不为零的个位数字n
(<10),换个格式来输出任一个不超过 3 位的正整数。例如234
应该被输出为BBSSS1234
,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:
每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。
输出格式:
每个测试用例的输出占一行,用规定的格式输出 n。
输入样例 1:
234
输出样例 1:
BBSSS1234
输入样例 2:
23
输出样例 2:
SS123
算法
这个题目难度倒是不大,无论通过什么方法都能解决。
方法1是从C的角度出发,建立对应的数组。
方法2是从string类的角度出发,判断输入是几位数字,这里要先将数字转化为字符串,用到了一个很好用的to_string(),这个函数要包含在<string>中。
方法3是柳婼大神的思路,显然使用while将各位数字取出来,再输出也是一个好方法。
方法4是12.01再次刷题的代码
思路
方法1
//pat1006V1#include <stdio.h>int main(){int value,i,bai,shi,ge; //value save the user's inputchar BaiArray[][10]={"B","BB","BBB","BBBB","BBBBB","BBBBBB","BBBBBBB","BBBBBBBB","BBBBBBBBB"};char ShiArray[][10]={"S","SS","SSS","SSSS","SSSSS","SSSSSS","SSSSSSS","SSSSSSSS","SSSSSSSSS"};char GeArray[][10]={"1","12","123","1234","12345","123456","1234567","12345678","123456789"};scanf("%d",&value);ge=value%10;shi=value/10%10;bai=value/100;// printf("%d %d %d\n",bai,shi,ge);for(i=0;i<9;i++)if(bai==i+1)printf("%s",BaiArray[i]);for(i=0;i<9;i++)if(shi==i+1)printf("%s",ShiArray[i]);for(i=0;i<9;i++)if(ge==i+1)printf("%s",GeArray[i]);return 0;}
方法2
#include <iostream>
#include <string>
using namespace std;
int main(){int n; cin>>n;char c[2]={'S','B'};string str=to_string(n);if(str.length() ==1){for(int i=1;i<=n;i++)cout<<i;}if(str.length() ==2){for(int i=0;i<n/10;i++)printf("%c",c[0]);for(int i=1;i<=n%10;i++)cout<<i;}if(str.length() ==3){for(int i=0;i<n/100;i++)printf("%c",c[1]);for(int i=0;i<n%100/10;i++)printf("%c",c[0]);for(int i=1;i<=n%100%10;i++)cout<<i;}return 0;
}
方法3
#include <iostream>
#include <string>
using namespace std;
int main(){int n,i=0; cin>>n;int b[3]={0};while(n){b[i++]=n%10; //依次取出最后一位数字n/=10; }for(int j=0;j<b[2];j++) cout<<"B";for(int j=0;j<b[1];j++) cout<<"S";for(int j=0;j<b[0];j++) cout<<j+1;return 0;
}
代码4
#include <iostream>
using namespace std;
int main(){int n; cin>>n;for(int i=0;i<n/100;i++) cout<<'B';for(int i=0;i<n%100/10;i++) cout<<'S';for(int i=0;i<n%10;i++) cout<<i+1;
}
1006 换个格式输出整数——C++实现相关推荐
- java lt10_PAT 1006 换个格式输出整数 (15)(C++JAVAPython)
1006 换个格式输出整数 (15)(15 分) 让我们用字母B来表示"百".字母S表示"十",用"12...n"来表示个位数字n(& ...
- 1006 换个格式输出整数 (15分)
1006 换个格式输出整数 (15分) 让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换个格式 ...
- 1006 换个格式输出整数 (15 分)
1006 换个格式输出整数 (15 分)让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换个格式 ...
- C++学习之路 | PTA乙级—— 1006 换个格式输出整数 (15分)(精简)
1006 换个格式输出整数 (15分) 让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换个格式 ...
- 1006 换个格式输出整数(C语言)
标题1006 换个格式输出整数 (15 分) 让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换 ...
- 1006 换个格式输出整数(python 3)
1006 换个格式输出整数 (15 分) 让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换个格 ...
- 【题解PAT】1006 换个格式输出整数
[题解PAT]1006 换个格式输出整数 (15 分) 让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(< ...
- PAT 1006 换个格式输出整数
1006. 换个格式输出整数 (15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 让我们用字母B来表示&qu ...
- PAT 乙级 1006 换个格式输出整数
1006 换个格式输出整数 (15 point(s)) 让我们用字母 B 来表示"百".字母 S 表示"十",用 12...n 来表示不为零的个位数字 n(&l ...
- pat 乙级 1006 换个格式输出整数(C++)
题目 让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3位的正整数. ...
最新文章
- CPU寻址过程方框图
- 双目立体匹配——归一化互相关(NCC)
- RUNOOB python练习题3
- 定义快捷代码_nodepad++代码编辑器替代工具整理
- Period II(FZU-1901)
- c语言皮尔森系数程序,按条件选入观测;皮尔森相关系数
- JAVA解决实例问题_解决java方法
- (转载)Dig命令的用法
- 28.MySQL Variables
- 用python设计图案_用 Python 打造属于自己的GUI图形化界面
- PostgreSql 常用 ALTER 语句
- WIN10访问linux分区「ext2fsd」
- Golang + selenium 设置无头浏览器模式
- easyUI——easyUI(入门)
- 微信无法打开xlsx文件_微信打不开文件怎么办显示excel丢失或损坏
- 用java怎么开发图片标注工具,图片标注工具选型
- 2010计算机系助学金,计算机系贫困生助学金申请书
- echarts实现中国地图,山西地图,图表面积图配置项
- 关于ORA-01034和ORA-27101的一种解决方法
- echarts设置背景图片