PTA平台显示我部分正确
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
cout<<"请输入一个正整数"<<endl;
int n=0;
do
{
cin>>n;
if(n>pow(10,100))cout<<"输入的数不小于十的一百次方,请重新输入"<<endl;
}
while(n>pow(10,100));
int sum=0;
for(n;n!=0;n/=10)
{
int y;
y=n%10;
sum+=y;
}
while(sum!=0)
{
int x;
x=sum%10;
switch(x)
{
case 1: cout<<"yi";
break;
case 2: cout<<"er";
break;
case 3: cout<<"san";
break;
case 4: cout<<"si";
break;
case 5: cout<<"wu";
break;
case 6: cout<<"liu";
break;
case 7: cout<<"qi";
break;
case 8: cout<<"ba";
break;
case 9: cout<<"jiu";
break;
case 0: cout<<"ling";
break;
}
sum/=10;
if(sum!=0)cout<<" ";
}
return 0;
}
#include<iostream>
#include<math.h>
#include<string>
using namespace std;
int main()
{
string han[]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
cout<<"请输入一个正整数"<<endl;
long n=0;//int n=0;
do
{
cin >> n;
if(n>pow(10,100))cout<<"输入的数不小于十的一百次方,请重新输入"<<endl;
}
while(n>pow(10,100));
int sum=0,s[100],len=0;
for(; n!=0; n/=10)
{
//int y;
//y=n%10;
sum+=n%10;//y;
}
//处理sum为0的情况
if(sum==0)
{
len=1;
s[0]=0;
}
while(sum!=0)
{
int x;
x=sum%10; //从个位开始取数字,输出需要把结果反过来。
s[len++]=x;
sum/=10;
//if(sum!=0)cout<<" ";
}
for(len--;len>=0;--len) //逆序输出
{
cout << han[s[len]];
if(len!=0)cout<<" ";
}
return 0;
}