1. 程式人生 > >1002. 寫出這個數 讀入一個自然數n,計算其各位數,用漢語拼音寫,用漢語拼音寫出和的每一位數字。

1002. 寫出這個數 讀入一個自然數n,計算其各位數,用漢語拼音寫,用漢語拼音寫出和的每一位數字。

// 1002.cpp: 定義控制檯應用程式的入口點。
//

#include "stdafx.h"
#include <iostream>
#include<string>
using namespace std;


int main()
{
    string a;
    cin >> a;
    int num=a.length();
    int i,sum=0;
    for (i = 0; i < num; i++)
    {
        sum = sum + (int(a[i]-48));
    }
    std::string x =std::to_string(sum);
    num = x.length();
    string result;
    for (i = 0; i < num; i++)
    {
        switch (x[i])
        {
        case '1':result = result+"yi";
            break;
        case '2':result =result+"er";
            break;
        case '3':result = result+"san";
            break;
        case '4':result = result+"si";
            break;
        case '5':result = result+"wu";
            break;
        case '6':result = result+"liu";
            break;
        case '7':result = result+"qi";
            break;
        case '8':result = result+"ba";
            break;
        case '9':result = result+"jiu";
            break;
        case '0':result = result + "ling";
            break;
        default:break;

        }
        if(i!=num-1)
        result = result + " ";
    }
    
    cout << result << endl;

    return 0;
}

//int能接受的範圍是多大?
//int             -2147483648 ~ +2147483647   (4 Bytes)

//發現新大陸!!! char a[100]字元陣列可以直接cin>>a,並且列印的時候可以直接cout<<a;

//又發現新大陸:在添加了<string>的標頭檔案之後,可以定義string的型別,string有很多功能可以用

//int可以輕易的轉string,C++11提供了這樣的方法std::string x =std::to_string(sum);
//??但是std是什麼我還不知道???

//今日錯誤:'yi',即便你寫上了單引號,這個也不是字元,字元只能是一個