首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

PAT Advanced 1005:Spell It Right - 數位和轉英文

     編輯:關於C++

問題描述

給定非負整數 N (≤ 10^100),計算其各位數字之和,將和的每位數字轉為英文單詞輸出 (空格分隔)。

解法步驟

  1. 讀入字符串 s。
  2. 累加各字符數字值得 sum。
  3. 將 sum 轉字符串,逐字符映射至英文單詞:zero, one, two, three, four, five, six, seven, eight, nine。
  4. 輸出單詞,空格分隔,行末無多餘空格。

代碼實現

#include <bits/stdc++.h>
using namespace std;

int main() {
    string s; cin >> s;
    int sum = 0;
    for (char c : s) sum += c - '0';
    string sum_str = to_string(sum);
    const vector words = {"zero","one","two","three","four",
                                  "five","six","seven","eight","nine"};
    for (int i = 0; i < sum_str.size(); ++i) {
        if (i) cout << ' ';
        cout << words[sum_str[i] - '0'];
    }
    cout << '\n';
    return 0;
}

關鍵點

  • 大整數用字符串讀取,逐位累加避免溢出。
  • 和的範圍:最大 100 * 9 = 900,三位數,to_string 安全。
  • 輸出格式控制:首單詞前無空格,單詞間單空格。

總結

簡單字符串處理題,考察大整數讀取、數位和計算、數字到英文映射、輸出格式控制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved