PAT 乙级 1006.换个格式输出整数 C++/Java

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

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

输入格式:

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

输出格式:

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

输入样例 1:

234

输出样例 1:

BBSSS1234

输入样例 2:

23

输出样例 2:

SS123

C++实现:

分析:

给出的数字至多只有3位数,所以可以创建一个大小为3的数组,分别存放百位、十位、个位。最后利用循环输出就可以了

 

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int n;
 7     int arr[3];
 8     cin >> n;
 9     
10     for (int i = 2; i >= 0; --i)
11     {
12         arr[i] = n % 10;
13         n /= 10;
14     }
15 
16     for (int i = 0; i < arr[0]; ++i)
17     {
18         cout << "B";
19     }
20     for (int i = 0; i < arr[1]; ++i)
21     {
22         cout << "S";
23     }
24     for (int i = 1; i <= arr[2]; ++i)
25     {
26         cout << i;
27     }
28     return 0;
29 }

 

Java实现:

 思路1:

同C++做法:创建一个长度为3的数组,分别存放百位、十位、个位。

 

 1 import java.util.Scanner;
 2 
 3 public class Main {
 4     public static void main(String[] args) {
 5         Scanner input = new Scanner(System.in);
 6         int[] arr = new int[3];
 7         int n = input.nextInt();
 8         for (int i = 2; i >= 0; --i) {
 9             arr[i] = n % 10;
10             n /= 10;
11         }
12         for (int i = 0; i < arr[0]; ++i) {
13             System.out.print("B");
14         }
15         for (int i = 0; i < arr[1]; ++i) {
16             System.out.print("S");
17         }
18         for (int i = 1; i <= arr[2]; ++i) {
19             System.out.print(i);
20         }
21     }
22

 

思路2:

对输入的数字n进行分辨得出:百位 [ a ]、十位 [ b ]、个位 [ c ]。

 

 1 import java.util.Scanner;
 2 
 3 public class Main {
 4     public static void main(String[] args) {
 5         Scanner input = new Scanner(System.in);
 6         int n = input.nextInt();
 7         int a = 0, b = 0, c = 0;
 8         if (n >= 100) {
 9             a = n / 100;
10             b = (n % 100) / 10;
11             c = n % 10;
12         }
13         if (n >= 10 && n < 100) {
14             b = n / 10;
15             c = n % 10;
16         }
17         if (n >= 1 && n < 10) {
18             c = n;
19         }
20         for (int i = 0; i < a; ++i) {
21             System.out.print("B");
22         }
23         for (int i = 0; i < b; ++i) {
24             System.out.print("S");
25         }28         for (int i = 1; i <= c; ++i) {31             System.out.print(i);
32         }
33     }
34 }

 

posted @ 2019-08-19 18:53  47的菠萝~  阅读(211)  评论(0编辑  收藏  举报