pat乙级 1002. 写出这个数 (20)

原创 2018年04月16日 21:54:38


1002. 写出这个数 (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

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

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

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

输入样例:
1234567890987654321123456789
输出样例:
yi san wu

提交代码

/*总体思路为用一个字符串储存这几个数字,然后通过循环计算出数字之和n,再将n的各个数表示出来*/
#include <iostream>
#include <string> 
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
	string s;
	cin>>s;
	int l=s.length();
	int i,j,n;
	n=0;
	k=0; 
	int a[10000]={0};
	//计算各个数之和 
	for(i=0;i<l;i++){
		a[i]=s[i]-'0';
		n=n+a[i];     
	}
	//用数组b储存汉语拼音; 
	string b[10];
	b[0]="ling";
	b[1]="yi";
	b[2]="er";
	b[3]="san";
	b[4]="si";
	b[5]="wu";
	b[6]="liu";
	b[7]="qi";
	b[8]="ba";
	b[9]="jiu";
	//count的作用是标记一共有多少位数需要表达 
	int count=0;
	int shuzi;
	i=0;
	//q数组的作用是存储要输出的各个数的拼音们 ,注意此时是从个位数的拼音往前存储的 
    string q[100];
    while(n!=0){
		j=n%10;
		shuzi=j;
		q[i]=b[shuzi];
		i++; 
    	n=n/10;
    	count++;
	}
    //从第一位的拼音开始输出,一直到倒数第二位 
	for(i=count-1;i>0;i--){
		cout<<q[i]<<" "; 
	}
	//输出最后一位,没有空格 
    cout<<q[0];
	return 0;
}


PAT 乙级 1002. 写出这个数 (20) Java版

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。 输出格式:在一行内输出n的各位...
  • liuchuo
  • liuchuo
  • 2017-02-23 16:45:21
  • 346

浙江大学PAT_乙级_1002. 写出这个数 (20)

c++/python/JAVA
  • pythontojava
  • pythontojava
  • 2015-05-02 20:05:28
  • 1290

PAT-B 1002. 写出这个数 (python)

1. dictionary初始化  dic = {} 2. list初始化 ans = {} 3. list遍历时两种方法 1)
  • u014674776
  • u014674776
  • 2014-05-15 13:15:44
  • 1189

PAT 1002 c++ 写出这个数

输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出“fu”字。十个数字对应的拼音如下:0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi ...
  • geek999
  • geek999
  • 2018-02-11 15:35:51
  • 57

PAT乙级1002. 写出这个数 C++

本人没有什么特殊的简单的解题技巧,为了安全,此次用了C++的字符串,从n 小于10的100次方可以看出n肯定不是long之类的,应该是字符串。主要就是对int和string之间的转换,以及输出了。我...
  • hengbao4
  • hengbao4
  • 2016-07-21 20:04:45
  • 2920

PAT(乙级) 1002.写出这个数

题目: 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。 输出格式:在一行内输出n的各...
  • u012792707
  • u012792707
  • 2016-06-21 20:33:23
  • 1274

PAT1002. 写出这个数;java实现

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。 输出格式:在一行内输出n的各位...
  • haiyoung
  • haiyoung
  • 2016-01-27 22:25:55
  • 1272

[PAT]1002.写出这个数 (20)

这里需要主要的地方有 1.未用BigInteger时的代码 import java.util.Arrays; import java.util.HashMap; import java.util....
  • zhouhuakang
  • zhouhuakang
  • 2016-02-11 20:16:09
  • 1558

PAT1002.写出这个数

本题主要涉及到基本的字符串、字符串数组操作。 n%10取低位(余数),n/10取高(去除最低位)。#include #include int main(){ char c[101]; ch...
  • sinat_21595363
  • sinat_21595363
  • 2016-02-05 11:54:15
  • 952

Java - PAT - 1002. 写出这个数 (20)

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。 输出格式:在一行内输出n的各位...
  • qq_34594236
  • qq_34594236
  • 2016-06-18 22:01:58
  • 770
收藏助手
不良信息举报
您举报文章:pat乙级 1002. 写出这个数 (20)
举报原因:
原因补充:

(最多只允许输入30个字)