本人90分WA,第7个点,请问大佬我到底哪错了(悲)
查看原帖
本人90分WA,第7个点,请问大佬我到底哪错了(悲)
895690
gghack_Nythix楼主2022/12/6 15:27
#include <bits/stdc++.h>
using namespace std;
string c[100] = {"zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","forteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty"};
int a[6];
int main()
{
	c[30]="thirty";
    c[40]="forty";
    c[50]="fifty";
    c[60]="sixty";
    c[70]="seventy";
    c[80]="eighty";
    c[90]="ninety";
	int n,cnt = 0;
	cin >> n;
	int x = n;
	if(n == 0)
	{
		cout << c[0];
		return 0;
	}
	for(int i = 1;x > 0;i ++)
	{
		a[i] = x % 10;
		x /= 10;
		cnt++; 
	}
	reverse(a + 1,a + cnt + 1);
	if(n >= 1000)
	{
		cout << c[a[1]] << " thousand ";
		if(a[2] == 0 && a[3] == 0 && a[4] == 0)
		{
			return 0;
		}
		if(a[2] != 0)
		{
			cout << c[a[2]] <<" hundred ";
			if(a[3] != 0 && a[4] == 0)
			{
				cout << c[a[3] * 10];
			}
			if(a[3] == 0 && a[4] != 0)
			{
				cout << "and " <<c[a[4]];
			}
			if(a[3] != 0 && a[4] != 0)
			{
				cout << "and " << c[a[3] * 10] <<" " << c[a[4]];
			}
		}
		else if(a[2] == 0)
		{
			if(a[3] != 0 && a[4] == 0)
			{
				cout <<"and " <<c[a[3] * 10];
			}
			else if(a[3] != 0 && a[4] != 0)
			{
				cout <<"and " <<c[a[3] * 10] << " " << c[a[4]];
			}
			else if(a[3] == 0 && a[4] != 0)
			{
				cout << "and " <<  c[a[4]];
			}
		}
	}
	else if(n >= 100)
	{
		cout << c[a[1]] << " hundred ";
		if(a[2] == 0 && a[3] == 0)
		{
			return 0;
		}
		if(a[2] == 0 && a[3] != 0)
		{
			cout << "and " << c[a[3]];
			return 0;
		}
		if(a[2] != 0 && a[3] == 0)
		{
			cout << "and " << c[a[2] * 10];
		}
		if(a[2] != 0 && a[3] != 0)
		{
			cout << "and " << c[a[2] * 10] << " " << c[a[3]];
		}
	}
	else if(n >= 10)
	{
		cout << c[a[1] * 10] << " " << c[a[2]];
	}
	else if(n >= 1)
	{
		cout << c[a[1]];
	}
	return 0;
}
2022/12/6 15:27
加载中...