前提・実現したいこと
この問題を解きたい。
https://beta.atcoder.jp/contests/abc090/tasks/abc090_b
発生している問題・エラーメッセージ
例えばa=31415, b=92654のとき、例では612となっているが
僕のを実行すると169になる。
エラーメッセージ
### 該当のソースコード ```ここに言語名を入力 #include<stdio.h> int main(void){ int num[5]={0}; int a=0, b=0; int i=0, j=0, n=0, cnt=0; int flag=0; scanf("%d %d", &a, &b); //nの各桁を配列に格納する for(i=a; i<=b; i++){ n=i; for(j=0; j<5; j++){ num[j]=n%10; n=n/10; } //回文になる3つのパターンと比較する。一致したときflag=1にすることで、判定回数を //削る。ちなみにcase1は*****と**@**を兼ねている。 for(j=1; j<=3;j++){ flag=0; switch(j){ case 1: if(num[0]==num[1] && num[1]==num[3] && num[3]==num[4]){ cnt=cnt+1; flag=1; } break; case 2://*@*@*の回文パターン if(num[0]==num[2] && num[2]==num[4] && num[1]==num[3]){ cnt=cnt+1; flag=1; } break; case 3://*@@@*の回文パターン if(num[0]==num[4] && num[1]==num[2] && num[2]==num[3]){ cnt=cnt+1; flag=1; } break; default: break; } if(flag==1) break; } } return 0; }
試したこと
一番外側のループの回数を数える
→(b-a+1)回行われてました(正しい回数です)。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
ちょっと読みづらいので、ソースコードの表示を直して欲しいです
回答3件
あなたの回答
tips
プレビュー