目录
题目描述
弱智题好叭,没啥可写的思路,就算个求和,然后对每一位switch一下,输出每一位的英文,空格隔开就行了。
代码实现
还是c++和JAVA都写了一版,基本差不多滴。
C++实现:
#include<iostream>
#include<string>
using namespace std;
int main(){
string N,result;
cin>>N;
long sum = 0,order = 0;
for(int i=0;i<N.length();i++){
sum += N[i] - '0';
}
result = to_string(sum);
for(int i=0;i<result.length();i++){
if(order!=0){
cout<<" ";
}
switch(result[i]){
case '0':cout<<"zero";break;
case '1':cout<<"one";break;
case '2':cout<<"two";break;
case '3':cout<<"three";break;
case '4':cout<<"four";break;
case '5':cout<<"five";break;
case '6':cout<<"six";break;
case '7':cout<<"seven";break;
case '8':cout<<"eight";break;
case '9':cout<<"nine";break;
}
order++;
}
cout<<endl;
return 0;
}
JAVA实现:
package com.pat;
import java.util.Scanner;
/*
* PAT甲级 Problem1005
* 弱智题
* */
public class Problem1005 {
public static void main(String[]args) {
Scanner scanner = new Scanner(System.in);
String N = scanner.next();
Long sum = 0L;
for(char temp:N.toCharArray()) {
sum += temp - '0';
}
String resultString = sum.toString();
long order = 0;
for(char digit:resultString.toCharArray()) {
if(order!=0) {
System.out.print(" ");
}
switch(digit) {
case '0':System.out.print("zero");break;
case '1':System.out.print("one");break;
case '2':System.out.print("two");break;
case '3':System.out.print("three");break;
case '4':System.out.print("four");break;
case '5':System.out.print("five");break;
case '6':System.out.print("six");break;
case '7':System.out.print("seven");break;
case '8':System.out.print("eight");break;
case '9':System.out.print("nine");break;
}
order++;
}
System.out.println();
}
}
没啥意思,最后看下两种语言的效果:
C++:
JAVA: