题目链接:https://www.patest.cn/contests/pat-a-practise/1005
思路:这里就是输入一个数,然后把这个数的各个位数加起来,然后将总和的数字用英文输出。
首先以char数组读入这个数,然后把各个位数和加起来。然后输出,输出的时候有技巧,我们可以写一个char型的二维数组将英文的zero-night存起来,然后和的每位数所对应的英文就为二维数组的第一维位数
具体写法看代码
#include<iostream>
#include<string.h>
using namespace std;
int main(){
char a[10000];
int b[10000];
int sum=0;
char str[11][15]={"zero","one","two","three",
"four","five","six","seven","eight","nine"};
cin>>a;
int i;
for(i=0;a[i]!='\0';i++){
b[i]=a[i]-'0';
cout<<b[i]<<endl;
}
for(int j=0;j<i;j++)
sum=sum+b[j];
int n=0;
if(sum==0){
cout<<"zero"<<endl;
}
else{
while(sum>0){
b[n]=sum%10;//记录下每位数字
sum=sum/10;
n++;
}
}
for(int i=n-1;i>0;i--){
cout<<str[b[i]]<<" ";//数字与英文对应
}
cout<<str[b[0]]<<endl;
return 0;
}