java - 为什么我的算法在 PTA 中输出总和的每一位都失败?

标签 java algorithm

我写了一些代码来解决下面的问题。我尝试了一些测试用例,它们都通过了,但是当我提交答案进行自动评分时,结果是失败的。我不知道问题出在哪里。

这里是问题和对应的link :

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语句后就通过了,真是奇怪。

关于java - 为什么我的算法在 PTA 中输出总和的每一位都失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52803331/

相关文章:

Java InputMismatchException 未知来源

java - 使用 Core Java 在 Selenium 中运行混合框架时,访问被拒绝并且只允许本地连接

java - 如何使用类中的 setters 方法将数据插入 JPA 实体表?

java - 需要java中的安全头代码

java - 用按钮控制透明度

python - 元组部分匹配

javascript - 这个递归数组置换函数是如何工作的?

algorithm - 图自动布局算法

algorithm - 有没有办法简化我对 M 高 N 塔游戏的思考?

algorithm - 在具有熵的范围内生成 20 个随机数