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

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

新規登録して質問してみよう
ただいま回答率
85.40%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

305閲覧

Atcoderの問題でWAになってしまう

resasu

総合スコア3

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2024/07/23 01:52

実現したいこと

https://atcoder.jp/contests/abc090/tasks/abc090_b
こちらの問題をACにしたい

発生している問題・分からないこと

評価がWAになってしまう

エラーメッセージ

error

1#include <bits/stdc++.h> 2using namespace std; 3 4int main() { 5 int A,B,count,range; 6 cin >> A >> B; 7 range = B-A; 8 count = 0; 9 for (int i=0 ; i < range +1 ; i++){ 10 int x,y,z,w; 11 x = A+i; 12 y = x - x%10000; 13 z = y%1000; 14 w = (z%100)/10; 15 if(x/10000 == x%10 && y/1000 == w ){ 16 count++; 17 } 18 } 19 cout << count <<endl; 20} 21

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Atcoderの回答例を参照した

補足

特になし

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

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

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

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

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

guest

回答1

0

ベストアンサー

デバッグしてください自分で

この程度の規模のコードであれば,
ある入力に対して,処理中の各変数の値というのはどうなるべきなのか?
そして実際にはどうなってしまっているのか?
とか何とかいう事柄をちまちまとチェックしていけば良いだけなのではないでしょうか.

例えば,
x, y, z, w というやつらの計算が間違っているのではないだろうか?」とか疑ってみるならば,
その計算結果がどうなってるのか? というのをチェックしてみればよいですよね.

こんなの↓とか書いてみると…

C++

1//※この辺をいろんな値に変えて結果をチェックする 2int A = 12345; 3int i=0; 4 5//--- 確認対象の計算処理コード 6int x = A+i; 7int y = x - x%10000; 8int z = y%1000; 9int w = (z%100)/10; 10 11//--- 目視Check 12std::cout << "x=" << x << "\n"; 13std::cout << "y=" << y << "\n"; 14std::cout << "z=" << z << "\n"; 15std::cout << "w=" << w << "\n";

コレの出力結果はこう↓なりましたが,果たしてこれが想定通りの結果なのか否か? っていう.

x=12345 y=10000 z=0 w=0

この時点で想定と違ってるならば,こいつらの計算実装が間違ってるってことでしょうし,
「いやいや,ココは合ってるようだぞ」と見えるのであれば,また別の所に疑いをかけてチェックしていけばいいですね.
そういうことをやりましょう.自分で

投稿2024/07/23 03:00

編集2024/07/23 03:01
fana

総合スコア11893

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

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

resasu

2024/07/23 09:58

回答ありがとうございます! 回答を見て、コードを書き換えたところうまくいきました。 プログラミング2日目の初心者でして、デバックというものを知らず、出力を試す方法を知りませんでした。 このように自分で入力を決めて出力をみるための、アプリか何かあるのでしょうか?Atcoderのサイト上でしかプログラムを書いていませんので、手段がわかりません。ネットで調べても、いまいちわかりませんでした。 お手数おかけしますが、ご教示いただけないでしょうか?
fana

2024/07/23 11:25 編集

とにかくコード書いて動かして結果を見るための手段というを持つべきなんじゃないかなぁ. 「プログラミングをする唯一の目的というのが Atcoder なのである!!」とかいう話でないならば. 何はともあれローカルに開発環境を構築するべきじゃないか?とか思うけども, まぁなんかオンラインで実行できるやつ(ideone.com とか paiza.io とかそういうやつ)でも良いのかもしれない.
fana

2024/07/23 11:31

なんなら,このくらいの規模のコードなのであれば,紙と鉛筆とかでもデバッグは十分にできるとは思うよ. 書かれているコード通りのことをあなたがCPUにでもなったつもりで(何の忖度もせずに)シミュレートしてみればよい.そうすれば各タイミングでの変数の値とかをチェックすることは可能だよね. とにかく「こうなるつもりで書いた」という想定と異なるところを見つければ「コレ変じゃね?」ってことになって,そこから間違いに気づく,というだけの話. 手計算でもいいし電卓を用いるのでも何でもいいけど,とにかく自分が書いたコードの動きというを追ってみることをすべき.(っていうだけの話)
resasu

2024/07/23 13:16

fanaさん 返信ありがとうございます。自分でも確認はしていましたが、先入観でなかなか今回は気づけませんでした。CPUになったつもり、意識します。
resasu

2024/07/23 13:17

hiroki-oさん コメントありがとうございます。 使用環境はmac OS 14.2.1 です。 ご存知でしたら、教えていただけませんか?
hiroki-o

2024/07/23 13:31

resasuさん macOSは詳しくないですが、BSD系UNIXなので標準でclang++か何か入っているのでは? ターミナルで、「clang++ -v」と叩いてみてください。
fana

2024/07/24 01:06

環境構築についての話がわりと続くようであれば, それはもう独立した質問にしたらいいじゃないかな,とか. (そうすれば macOS のことを知っているような人の目にも付く可能性が高いだろうし.)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.40%

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

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

質問する

関連した質問