質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

29106閲覧

javaの出力において、半角スペースを出力したい。

infra____

総合スコア90

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/05/10 06:50

編集2020/05/10 07:07

▪️実現したいこと

入力は以下のフォーマットで与えられます。
入力値最終行の末尾に改行が1つ入ります。

n(正の整数)

▪️期待する出力
正の整数nを1から9の数を掛けた数を半角スペース区切りで出力してください
最後は改行し、余計な文字、空行を含んではいけません。

▪️出力例 

4 8 12 16 20 24 28 32 36

▪️現在のソースコード
(以下のコードで実行しても、半角スペースは出力されるのですが、競プロの過去問だとエラーになります。何か、別の方法はございますか)

java

1コード 2 3import java.util.*; 4 5 6public class Main { 7 public static void main(String[] args) { 8 9 Scanner stdIn = new Scanner(System.in); 10 int n=stdIn.nextInt(); 11 12 for(int i=1 ;i<=9; i++){ 13 System.out.print(n*i+" "); 14 15 } 16 17 } 18} 19 20

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/05/10 06:57

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 ただ、「競プロの」であれば、そこのルールがあるのでしょう。 そちらを確認された方が良いかと思います
退会済みユーザー

退会済みユーザー

2020/05/10 06:59

・何を入力して何を出す仕様なんですか? ・「競プロの過去問」とはなんですか? ・ソースコードは```で囲んでください ・ソースコードに書いてあるスペースは全角ですが、そこはどうなんでしょうか?
momon-ga

2020/05/10 07:00

半角スペースは出力できているので、エラーの原因は、半角スペースではないと思いますが、 その条件がわからないと・・・ 末尾の余計な半角スペースを出力したくないとか。末尾に改行つけたいとかそうゆうこと?
infra____

2020/05/10 07:07

再度、訂正致しましたので、そちらを参照していただけますと幸いです。
m.ts10806

2020/05/10 07:10

半角スペースではないですね(既に回答で指摘入ってますが)
cateye

2020/05/10 07:28 編集

エディタの設定で、『空白文字を表示』とかってないですか?
guest

回答3

0

以下のコードで実行しても、半角スペースは出力されるのですが

いえ、全角スペースを出力しているようです。

投稿2020/05/10 07:02

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

競技プログラミングの回答の場合、「解答の最後に改行を1つ入れてください」という指示があるものが多いです。その場合、最後に改行が入らないこの出力では不正解ということになります。

投稿2020/05/10 07:13

swordone

総合スコア20669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

普段は全角と半角の細かい違いなどはスルーすることも多いのですが、今回はきっちり行きます。

入力例


出力
3 6 9 12
→それぞれの数字の間は、半角スペースがあります。

数字もスペースも半角ではなく全角になってますね。全角と半角の区別ついてますか?
(いわゆるプロポーショナルフォントだと、全角と半角の英数字やスペースの区別がつかないこともあるようなので、ご注意ください。また、ブラウザによっては、全角と半角を区別せずに検索するものもあるようです。)

for(int i=1 ;i<=9; i++){

System.out.print(n*i+" ");
}

" " の中身が全角スペースになってることにお気づきでしょうか? このため、数字は半角、スペースは全角で出力されます。

また、競技プログラミングのルールはよく分かりませんが、このコードだと数字の後には必ずスペースが出力されますが、最後の余分なスペースが減点対象になってるのかもしれません。これを防ぐには、最後だけ特別扱いする必要があります。さらに、最後に改行する必要があるのかも。

java

1for (int i = 1; i <= 9; i++) { 2 System.out.print(n * i); 3 if (i < 9) { 4 System.out.print(" "); 5 } 6} 7System.out.println();

投稿2020/05/10 07:13

hoshi-takanori

総合スコア7901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

infra____

2020/05/10 07:19

解決できました。本当にありがとうございます。一点質問なのですが、ここまで細部までこだわる必要って実務でありますか?
hoshi-takanori

2020/05/10 07:29

業務でも当然必要ですし、この程度のことは「こだわる」うちには入りません。全角と半角の違いではありませんが、一文字打ち間違えたせいでロケットが墜落して何億円もの損害が出ることもありますので。 https://natgeo.nikkeibp.co.jp/atcl/web/17/121100020/020200005/ (カンマとピリオドを間違えたと記憶してたけど、ハイフンの有無だったらしい…。) 厳しい言い方になって申し訳ありませんが、今回のように全角と半角の違いが問題になってる場合は特に、入力や出力の例も全角と半角の区別をきちんとしましょう。そういういい加減なところがコードにも現れてしまうのだと思います。
cateye

2020/05/10 07:40

こちらを参考に→https://wirelesswire.jp/2015/06/32044/
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問