文章目录

  • 题目描述
  • 思路解析
  • C++实现
  • Python实现

题目描述

  让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n来表示不为零的个位数字 n(<10)(<10)(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4

输入格式

  每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。

输出格式

  每个测试用例的输出占一行,用规定的格式输出 n。

输入样例 1:

234

输出样例 1

BBSSS1234

输入样例 2

23

输出样例 2

SS123

思路解析

  这里其实就是希望我们将输入数字的个位、十位、百位都给找出来,并且需要验证都是几,用输出不同符号的方式验证。但是在C++实现的时候,我发现调用<stdio.h>下的printf输出string格式的数据的时候报错了,cout并不会,后来百度了一下,理由如下:

  printf输出字符串是针对char *的,换言之,printf只能输出c语言中的内置数据,string不是c语言内置数据。更深入的来说:如:string s = "中国";s这个string类型的对象并非单单只有字符串,其内还有许多用于操作的函数,于是&s并非字符串“中国”的首地址,而是s这个对象的首地址。因此借用stringc_str()成员方法返回当前字符串的首字符地址。

  在Python实现的时候整除是两个斜杠//

C++实现

#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;int main(){int input;string output = "";scanf("%d", &input);int B_num = input / 100;for(int i=0; i<B_num;i++){output = output+"B";}int S_num = (input - B_num*100)/10;for(int i=0; i<S_num; i++){output = output+"S";}int G_num = (input - B_num*100 - S_num*10);for(int i=1;i<G_num+1;i++){output=output + to_string(i);}printf("%s", output.c_str());
}

Python实现

input_data =  int(input())
output_data = ""
B_num = input_data // 100
for i in range(B_num):output_data = output_data +"B"
S_num = (input_data -B_num*100)//10
for i in range(S_num):output_data = output_data +"S"
G_num = input_data - B_num*100 - S_num*10
for i in range(G_num):output_data = output_data + str(i+1)
print(output_data)

【浙江大学PAT真题练习乙级】1006 换个格式输出整数 (15分) 真题解析相关推荐

  1. C++学习之路 | PTA乙级—— 1006 换个格式输出整数 (15分)(精简)

    1006 换个格式输出整数 (15分) 让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换个格式 ...

  2. PAT(乙级)1006 换个格式输出整数 (15 分) (C语言)

    让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数.例如 ...

  3. 1006 换个格式输出整数 (15分)

    1006 换个格式输出整数 (15分) 让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换个格式 ...

  4. 1006 换个格式输出整数 (15 分)

    1006 换个格式输出整数 (15 分)让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换个格式 ...

  5. PAT 1006 换个格式输出整数 (15 分)(Java)

    题目描述:   让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 ...

  6. C语言简洁代码:1006 换个格式输出整数 (15分)

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表 ...

  7. 1006 换个格式输出整数 (15 分)(c语言)

    让我们用字母 B 来表示"百".字母 S 表示"十",用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数. ...

  8. java lt10_PAT 1006 换个格式输出整数 (15)(C++JAVAPython)

    1006 换个格式输出整数 (15)(15 分) 让我们用字母B来表示"百".字母S表示"十",用"12...n"来表示个位数字n(& ...

  9. PAT 乙级 1006 换个格式输出整数

    1006 换个格式输出整数 (15 point(s)) 让我们用字母 B 来表示"百".字母 S 表示"十",用 12...n 来表示不为零的个位数字 n(&l ...

  10. 1006. 换个格式输出整数 (15)-PAT乙级真题

    让我们用字母B来表示"百".字母S表示"十",用"12-n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如2 ...

最新文章

  1. 手撕面试题:多个线程交替打印问题
  2. windowserver2008官方不提供POP3服务
  3. 深度学习、自然语言处理和表征方法
  4. 网易智慧企业 Node.js 实践(3)| 灰度环境和应用监控
  5. b 树查找时间复杂度_你心里是没点B树吗?
  6. BZOJ.4516.[SDOI2016]生成魔咒(后缀自动机 map)
  7. node.js 程序_如何不使用外部程序包创建Node.js Web应用程序
  8. 读取kaf卡数据_墨菊居然能秒开机秒读数据!Lexar雷克沙1667x UHS-II存储卡体验
  9. [HFSS]Surface Mesh Generation Failed
  10. 网站服务器ip解析,服务器 域名 解析ip
  11. 小四哥的故事——访中联绿盟陈庆
  12. linux双卡同时使用教程,苹果教你玩转双卡双待:官方推出双卡使用教程,真香!...
  13. 双击启动PS软件界面不显示、PS无法打开,解决方法
  14. js正则匹配手机号、身份证号
  15. NAO机器人高尔夫中的视觉系统设计
  16. FM调制的FPGA实现
  17. 博文推荐|Apache Doris 单节点 Docker 集群制作教程
  18. MapReduce起源 and原理
  19. 建立一个新的Oracle数据库
  20. 国内云服务器厂商众多,如何选择

热门文章

  1. E60的存储空间不足? NO
  2. MySQL数据库(八)
  3. H3C DHCP实验
  4. MPLS virtual private network Spoken-Hub网络实验(华为设备)
  5. HCIE Secuirty AC概述 备考笔记(幕布)
  6. lvs+keepalived实现负载均衡和高可用
  7. 360度测试:KAFKA会丢数据么?其高可用是否满足需求?
  8. Window 浏览器窗口对象
  9. Session 的生命周期
  10. JavaScript 物体的运动