模拟爱与愁的一千个伤心的理由

Posted gongdakai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟爱与愁的一千个伤心的理由相关的知识,希望对你有一定的参考价值。

原题传送门

思路


这道题的题目我是真的无力吐槽,但是,这道题真心不错QAQ。

这道题不难,但很考验耐心与细心,有各种各样的小错误,如果不细心都不会发现,我最开始的代码只得了60分,就是忽略了好几个情况,然后反复测试数据,才AC的QAQ(也许只是因为我太弱了)

值得一刷

Code


#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
using namespace std;

int n;
int s[5];
string a[25]="","one","two","three",
"four","five","six","seven","eight","nine",
"ten","eleven","twelve","thirteen","fourteen",
"fifteen","sixteen","seventeen","eighteen","nineteen";
string x[20]="","","twenty","thirty","forty","fifty",
"sixty","seventy","eighty","ninety";
int main()

    cin>>n;
    int i=4;
    while(n!=0)
    
        s[i]=n%10;
        n/=10;
        i--;
    
    if(s[1]!=0)
        cout<<a[s[1]]<<" thousand ";
    if(s[2]!=0)
        cout<<a[s[2]]<<" hundred "; 
    else if(s[3]!=0&&s[4]!=0&&(s[2]!=0||s[1]!=0))
        cout<<"and ";       
    if(s[3]==0&&s[4]!=0&&(s[2]!=0||s[1]!=0))
        cout<<"and "<<a[s[4]]<<endl;
    else if(s[3]==0&&s[4]!=0)
        cout<<a[s[4]]<<endl;
    else if(s[3]==1)
        cout<<a[s[4]+10]<<endl;
    else if(s[4]!=0)
        cout<<x[s[3]]<<" "<<a[s[4]];
    if(s[1]==0&&s[2]==0&&s[3]==0&&s[4]==0)
        cout<<"zero";
    return 0;

以上是关于模拟爱与愁的一千个伤心的理由的主要内容,如果未能解决你的问题,请参考以下文章

洛谷——P1614 爱与愁的心痛

洛谷 || 爱与愁的心痛(C语言)

P1614 爱与愁的心痛

选择消失,仅仅因一千个伤心的理由

混合背包问题(樱花)

洛谷——P1746 离开中山路