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

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

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

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

Q&A

解決済

3回答

1390閲覧

コード中のおかしな点を見つけること.

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2018/11/12 04:16

前提・実現したいこと

この問題を解きたいです。
https://beta.atcoder.jp/contests/abc060/tasks/abc060_b

発生している問題・エラーメッセージ

コンパイルエラーは出ていません. 問題ページのテストケースは全て通りますが, 提出先のテストケースでは全て誤答になります.

該当のソースコード

java

1import java.util.*; 2 3public class Main{ 4 public static void main(String[] args){ 5 Scanner sc = new Scanner(System.in); 6 int a = sc.nextInt(); 7 int b = sc.nextInt(); 8 int c = sc.nextInt(); 9 boolean flag = false; 10 11 for(int i = 1; i <= b; i++){ 12 if(a * i % b == c){ 13 flag = true; 14 break; 15 } 16 } 17 18 if(flag == true){ 19 System.out.println("Yes"); 20 }else{ 21 System.out.println("No"); 22 } 23 24 } 25} 26 27/* 28Scanner sc = new Scanner(System.in); 29int n = sc.nextInt(); 30String blank = sc.nextLine(); 31String s = sc.nextLine(); 32System.out.println(); 33System.exit(0) 34*/ 35

試したこと

正解している人のコードと見比べましたが, 同じことをしているように思いました.

補足情報(FW/ツールのバージョンなど)

提出はJava8(OpenJDK 1.8.0)を使用しています.

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

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

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

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

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

guest

回答3

0

ベストアンサー

"YES" "NO"とすべて大文字で出力しなければならないところを、

java

1 if(flag == true){ 2 System.out.println("Yes"); 3 }else{ 4 System.out.println("No"); 5 }

小文字混じりの出力になっています。

ちなみに

今回の問題の方程式を立てると、
Ax = By + C
となり、移項すると
Ax - By = C
となります。この整数x, yについての方程式は、解があるときは無数に存在するので、一次不定方程式と呼びます。
この方程式は、C = 0、またはCが「AとBの最大公約数」の倍数である時に解を持つことが知られています。
最大公約数は「ユークリッドの互除法」で求まるので、Cがそれで割り切れるか判定すればいいことになります。

投稿2018/11/12 05:22

編集2018/11/12 07:16
swordone

総合スコア20649

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

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

退会済みユーザー

退会済みユーザー

2018/11/12 08:16

回答ありがとうございます. 最後の二行以外はネットで証明を読んで理解できました. 二通り調べるだけでよいので, そちらの方が早いですよね. ユークリッドの互除法の証明は未だに分かりませんので, 理解した後 コードを書いてみたいと思います.
guest

0

算出ロジックはあっていますが、

出来るならば YES、そうでないならば NO を出力してください。

大文字小文字が違うからでは。

投稿2018/11/12 05:44

A-pZ

総合スコア12011

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

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

退会済みユーザー

退会済みユーザー

2018/11/12 08:16

回答ありがとうございます. まさかのところでミスをしていました.
guest

0

どんなに大きな整数を選んでもよいですし、整数を5000兆個選んでもよいです

こう書いている以上少なくても int は無いと思います。
long でお茶を濁すのが現実的な回答かと…

ただし、

実行時間制限: 2 sec / メモリ制限: 256 MB

と書いてあるので、然るべき理由を述べたあと「回答不能」も正解かと

投稿2018/11/12 05:23

hihijiji

総合スコア4150

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問