前提・実現したいこと
AtCoderの、ABC176のB問題についてです。
何個かのテストデータが通らず、WAになってしまいます。
###B問題
整数 Nが9の倍数であることと、Nを十進法で表したときの各桁の数の和が9
の倍数であることは同値です。
Nが9の倍数であるか判定してください。
######制約
- 0<=N<10^200000
- Nは整数
#####入力
標準出力から、Nが与えられる。
#####出力
Nが9の倍数ならば'Yes'、そうでないなら'No'を出力せよ。
該当のソースコード
C++を用いてプログラムを作成しています。 num は、入力の N です。
1、Nの格桁の和が9の倍数であることを用いました。
C++
1#include <stdio.h> 2#include <iostream> 3#include <cmath> 4#include <string> 5#include <algorithm> 6 7using namespace std; 8 9int main(){ 10 long long num, sum=0; 11 12 cin >> num; 13 14 while(num!=0){ 15 sum += num%10; 16 //cout << "sum =" << sum<<endl; 17 num = num/10; 18 //cout << "num = " << num << endl; 19 } 20 21 if(sum%9 == 0){ 22 cout << "Yes" << endl; 23 } 24 else{ 25 cout << "No" << endl; 26 } 27} 28
2、Nが9の倍数かどうかそのまま調べました。
C++
1#include <stdio.h> 2#include <iostream> 3#include <cmath> 4#include <string> 5#include <algorithm> 6 7using namespace std; 8 9int main(){ 10 long long num; 11 12 cin >> num; 13 14 if(num%9 == 0){ 15 cout << "Yes" << endl; 16 } 17 else{ 18 cout << "No" << endl; 19 } 20}
試したこと
2つのプログラムどちらも問題の入力例にある、
- 123456789 -> Yes
- 0 -> Yes
- 31415926535897932384626433832795028841971693993751058209749445923078164062862089986280 -> No
はうまくいきます。自分でも思いつくテストは試してみたのですが、うまくいっているように思えます。
通らないテストデータの例が思いつかないので、ご教授いただけると嬉しいです。
よろしくお願い致します。
制約間違ってません?
回答2件
あなたの回答
tips
プレビュー