PAT 1002 写出这个数 (字符串)

题目>>

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 1。

输出格式:

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

思路>>

①题目给出的n是小于10的100次方的,很明显不能用int型或者long long 型来表示,10的100次方是一个101位的数,故考虑用字符数组来存放这个数。

②输入n后将每一位求和,注意字符转数字的方法:‘1’-‘0’=1.

③将sum从低位到高位存入int型数组(用字符数组会出错?),输出对应拼音。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn=110;
 4 int main(){
 5     char n[maxn];
 6     scanf("%s",n);
 7     int len=strlen(n);
 8     int sum=0;
 9     for(int i=0;i<len;i++){
10         sum+=(n[i]-‘0‘);
11     }
12     int k[10];
13     int j=0;
14     while(sum!=0){
15         k[j++]=sum%10;
16         sum/=10;
17     }
18     for(int i=j-1;i>=0;i--){
19         switch(k[i]){
20             case 0:printf("ling");break;
21             case 1:printf("yi");break;
22             case 2:printf("er");break;
23             case 3:printf("san");break;
24             case 4:printf("si");break;
25             case 5:printf("wu");break;
26             case 6:printf("liu");break;
27             case 7:printf("qi");break;
28             case 8:printf("ba");break;
29             case 9:printf("jiu");break;
30         }
31         if(i>0) printf(" ");
32     }
33 }

当然,也可以用字符数组来存放拼音。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn=110;
 4 int main(){
 5     char n[maxn];
 6     scanf("%s",n);
 7     int len=strlen(n);
 8     int sum=0;
 9     for(int i=0;i<len;i++){
10         sum+=(n[i]-‘0‘);
11     }
12     int k[10];
13     int j=0;
14     while(sum!=0){
15         k[j++]=sum%10;
16         sum/=10;
17     }
18     char num[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
19     for(int i=j-1;i>=0;i--){
20         printf("%s",num[k[i]]);
21         if(i>0) printf(" ");
22     }
23 }

 

原文地址:https://www.cnblogs.com/taiga/p/12641612.html

时间: 2024-09-30 22:18:10

PAT 1002 写出这个数 (字符串)的相关文章

PAT 1002. 写出这个数

1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样例: yi san wu 1 #include<iostream> 2 #include<vector> 3 #

pat 1002. 写出这个数 (20)

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样例: yi san wu 1 #include <iostream> 2 #include <cstring> 3 using namespac

PAT——1002. 写出这个数

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样例: yi san wu package com.hone.basicalTry; import java.util.Scanner; public clas

[PAT乙级] Practise 1002 写出这个数

PAT (Basic Level) Practice (中文)1002 1002 写出这个数 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10100. 输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样例: yi san wu 思路: 先创

【PAT】1002. 写出这个数 (20)

1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样例: yi san wu C 代码如下: 1 #include <stdio.h> 2 #include <stdl

PAT (Basic Level) Practise 1002. 写出这个数

1002. 写出这个数 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样

PAT乙级.1002.写出这个数

1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样例: yi san wu #include <stdio.h> #include<string.h> char

PAT 乙级练习题1002. 写出这个数 (20)

1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样例: yi san wu 我的代码C#版 1 using System; 2 3 namespace PATPractice

1002 写出这个数(乙级)

1002 写出这个数 (20分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10100. 输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样例: yi san wu 代码如下: include <stdio.h> include <