簡體   English   中英

為什么在PTA中輸出總和的每個數字的算法都失敗了?

[英]Why does my algorithm to output every digit of a sum fail In PTA?

我寫了一些代碼來解決下面的問題。 我試過一些測試用例,它們都通過了,但是當我提交自動標記答案時,結果是失敗。 我不知道問題出在哪里。

這是問題和相應的鏈接

1005正確拼寫(20分)
給定一個非負整數N,您的任務是計算N的所有數字的總和,並以英語輸出總和的每個數字。

輸入規格:
每個輸入文件包含一個測試用例。 每個案例占用一行包含N(≤10^ 100)的一行。

輸出規格:
對於每個測試用例,用英語單詞在一行中輸出總和的數字。 兩個連續的單詞之間必須有一個空格,但在行尾不能有多余的空格。

輸入樣例:

12345

樣本輸出:

one five

下面是我的代碼(提交到系統之前,需要將類名稱替換為Main):

package com.maxim.advance;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

public static void main(String args[]) {
    Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();
    scanner.close();
    int length = input.length();
    int sum = 0;
    for (int index = 0; index < length; index++) {
        sum += input.charAt(index) - '0';
    }
    // Consider sum == 0 case;
    if (sum == 0) {
        System.out.print("zero");
    }

    String[] names = new String[] {
            "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
    };


    List<String> outputs = new ArrayList<String> (100);
    while (sum > 0) {
        outputs.add(names[sum % 10]);
        sum = sum / 10;
    }


    int size = outputs.size();

    for (int i = size - 1; i >= 0; i--) {
        if (i > 0) {
            System.out.print(outputs.get(i) + " ");
        } else {
            System.out.print(outputs.get(i));
        }

    }
}
}

下面的C ++代碼正確且始終通過

#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
long int tmp=0;
for(int i=0;i<s.size();i++){
    tmp+=(s[i]-'0');
}
string match[10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
vector<string> v;
long int sum=tmp;
while(sum){
    v.push_back(match[sum%10]);
    sum/=10;
}

reverse(v.begin(),v.end());
if(tmp==0)// 
cout<<"zero";
else
for(int i=0;i<v.size();i++){
    if(i==0)
    cout<<v[i];
    else
    cout<<" "<<v[i];
}
return 0;
}

作為一個網友的建議,它在我刪除package語句后通過了,這確實很奇怪。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM