- 締切済み
教えて下さい!
以下のプログラムがわかりません。 最近学び始めたのですが、うまく理解できない所があります public static void main(string[]args) int i=99 system.out.printIn(f(i)); static int f(int i) if(i<=0) return 0; else if(i%2==0) return 1+f(i -1) else return f(i-1); 少し省いてますが、このプログラムを実行した時の出力される整数、 メソッドfは何を計算しているのか? いろいろと調べてみてもわからないので、どなたかご教授お願いします!
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- jjon-com
- ベストアンサー率61% (1599/2592)
関連するQ&A
- プログラムの合体。
jump7799_4836さん 2018/7/2103:34:44 public class Test2 { public static int メソッド () { System.out.println("メソッド()が呼ばれました"); return 0; } public static int メソッド (int i) { System.out.println("メソッド(int i)が呼ばれました"); return i; } public static int メソッド (int i, int j) { System.out.println("メソッド(int i, int j)が呼ばれました"); return i; } public static int メソッド (short s) { System.out.println("メソッド(short s)が呼ばれました"); return s; } public static int メソッド (double d) { System.out.println("メソッド(double d)が呼ばれました"); return (int) d; } } public メソッド class Test2 { public メソッド static void main(String[] args) { Test2.メソッド (); Test2.メソッド (1); Test2.メソッド (1,2); Test2.メソッド (1.1); Test2.メソッド ((short) 1); Test2.メソッド ((double)1); } } kouzou@GD348ZZD9:/WORK$ javac Test2.java Test2.java:29: エラー: class、interfaceまたはenumがありません public メソッド class Test2 { ^ Test2.java:30: エラー: <identifier>がありません public メソッド static void main(String[] args) { ^ エラー2個 2つのプログラムが合体することってあるのですか? いつもすみません。 解説のほど、宜しくお願い申し上げます。
- ベストアンサー
- Java
- Javaプログラミング
Javaプログラミングで分からない課題が出たので、教えてもらえませんか? 実行結果 1つ目の整数を入力してください。 23 2つ目の整数を入力してください。 12 足し算の結果:35 引き算の結果:11 プログラムの大枠はこのようになるのですが public class 〇〇 { public static void main(String[] args) { System.out.println("1つ目の整数を入力してください。"); } public static int add(int a,int b) { return (a + b); public static int sub(int a,int b) { } }
- ベストアンサー
- Java
- javaプログラムについて
*/コマンドライン引数で2つの数字と1つの記号を受け取ります。 * //受け取った記号が『+』ならplusメソッドを呼び出し、 * //受け取った記号が『-』ならminusメソッドを呼び出し、 * //受け取った記号が『×』ならmultiplyメソッドを呼び出し、 * //受け取った記号が『÷』ならdivideメソッドを呼び出し、 * //それ以外が入力された場合は『計算できません。』と表示する * //プログラムを作成してください。 * */ public class MethodAdd9 { public static void main(String[] args) { int input1 = Integer.parseInt(args[0]); int input2 = Integer.parseInt(args[1]); String sign = args[2]; //ここにプログラムを追加してください if(sign.equals("+")){ plus(input1,input2);//プラスメソッドへ } if(sign.equals("-")){ minus(input1,input2);//マイナスメソッドへ } if(sign.equals("*")){ multiply(input1,input2);//掛算メソッドへ } if(sign.equals("/")){ divide(input1,input2);//割算メソッドへ } } // 四則演算を行うメソッドを追加 //プラスメソッド表示 public static void plus(int a,int b){ int c=a+b; System.out.println(a+b); } //マイナスメソッド表示 public static void minus(int d,int e){ int f=d-e; System.out.println(d-e); } //掛算メソッド表示 public static void multiply(int g, int h){ int i=g*h; System.out.println(g*h); } //割算メソッド表示 public static void divide(int j,int k){ int l=j/k; System.out.println(j/k); } } ここまで出来て、記号を認識してくれるようにはなったのですが、何故か"*"掛算の記号だけ読み込んでくれません。また、ここから「計算出来ません」と表示させるにはどうすれば良いでしょうか。知恵をお貸しください。
- ベストアンサー
- SE・インフラ・Webエンジニア
- メソッドの中に、作ったメソッドを呼び込みたいんですが
メソッドの中に、作ったメソッドを呼び込みたいんですが シグネチャを int argCheck(String args[]) に指定して、 引数のチェック処理メソッドというものを作成してるんですが、 よくわからないんです。 内容は (1) 引数の数が1個でない場合、1を返却 (2) 引数が『aaa』でも『ZZZ』でもない場合、99を返却 (3) 以外は、0を返却 public class Test { public static void main(String args[]) { Test test = new Test(); int result = test.argCheck(args); test.argCheck(); //メソッドを呼び込み } private int argCheck(String args[]) { if(args[0].length != 1) // 引数の数が1以外の場合 { return 1; // 1を返す } else if (!args[0].equalsIgnoreCase("aaa") && !args[0].equalsIgnoreCase("ZZZ")) //引数が aaa でも ZZZ でもない場合(大/小文字区別せず) { return 99; // 99を返す } else // それ以外の場合 { return 0; // 0を返す } } }
- ベストアンサー
- Java
- アルゴリズム
public class A1 { public static void main(String[] args) { int[] dataes = {10, 8, 9, 3, 2, 1, 4, 6, 5, 0}; System.out.println("result index = " + search(dataes, 2)); } public static int search(int[] dataes, int valueToFind) { for (int i = 0; i < dataes.length; i++) { if (dataes[i] == valueToFind) { return i; } } return -1; } } このプログラムのフローチャートを教えてください
- ベストアンサー
- Java
- public class Power {
public class Power { static long pow(int a, int b){ if (b<=0) return 1; else return a*pow(a,b-1); } public static void main(String args[]){ System.out.println(pow(1,3)); } } run: 1 BUILD SUCCESSFUL (total time: 0 seconds) 簡単な問題ですが。。。 僕の予想では答えは2でした 1 * (1, 2) 1 * 1 * 2 じゃないんですか?
- ベストアンサー
- Java
- 1と0の文字列作成
1の後には0.9の確率で1、0.1の確率で0 0の後には0.9の確率で0、0.1の確率で1 という条件で、1と0の文字列作成しようと下のプログラムを作ってみました。 しかし実行してみるとなぜか1の後には0がきてしまうことが多く、条件のようになりません。 どこがおかしいのででしょうか? public class Sample{ public static void main(String[]args){ int a[]=new int[50]; Kansuu1 b = new Kansuu1(); Kansuu2 e = new Kansuu2(); a[0] = 0; for(int i=0; i<50; i++){ if(i==0){ System.out.print(0); }else{ int c = 0; if(a[i-1]==0){ c = b.kan1(a[i]); }else { c = e.kan2(a[i]); }System.out.print(c); } } } } class Kansuu1{ int kan1(int a){ if(Math.random()>0.9){ return 1; }else { return 0; } } } class Kansuu2{ int kan2(int a){ if(Math.random()>0.9){ return 0; }else { return 1; } } }
- ベストアンサー
- Java
- intではなくStringで・・・
こんなソースがあります。。 public class Check { public static void main(String[] args) { int i = Integer.parseInt(args[0]); if (i == 123) { System.out.println("あたり!"); } else if (i < 123) { System.out.println("はずれ!"); } else { System.out.println("おおはずれ!"); } } } これを、int型の文字を入力して判定させるのではなく、String型の文字で判定させたいのですが、 int i = Integer.parseInt(args[0]);をどう変えればいけるでしょうか? よろしくお願いします!
- ベストアンサー
- Java
- 静的変数と静的メソッドの使い方について
独習JAVAにてJAVAを学習しています。「コマンドライン引数を受け取り、それをスペイン語表記に変換して表示するアプリケーションを作成しなさい。例えば、OneはUno、・・・、FiveはCincoになります。静的メソッドを使って実現しなさい」という問題で躓きました。以下、私が作成したプログラムです。 class Language { static String st[] = new String[5]; //静的初期化ブロックは実行しない。 //コマンドライン引数を受け取るmainメソッドが使えないため //静的メソッド static String translation(){ for(int i = 0; i < st.length; i++) { if(st[i] == "One") return st[i] = "Uno"; if(st[i] == "Two") return st[i] = "Dos"; if(st[i] == "Three") return st[i] = "Tres"; if(st[i] == "Four") return st[i] = "Quatro"; if(st[i] == "Five") return st[i] = "Cinco"; } } //21行目 } class StaticalMethodPractice { public static void main(String args[]) { //mainメソッドが登場したので、静的変数を初期化する for(int i = 0; i < Language.st.length; i++) Language.st[i] = args[i]; //静的メソッドを実行 System.out.println(Language.translation()); } } このプログラムに対して、21行目return文が指定されていませんというエラーメッセージが出てくるのですが、そもそもreturnの使い方もよく分からないので右往左往している状況です。低級な質問かもしれませんが、よかったらアドバイスの方よろしくお願いします。
- 締切済み
- Java
- 昇進者です。 戻り値の学習をしていますが。
*を10個表示するプログラムですが。 public class Graph1 { public static void main(String[] args) { printGraph(10); } public static void PrintGraph(int x) for(int i = 0; i < x; i++){ System.out.println("*"); } System.out.println(""); } } のprintGraph(10);は何のためにあるのですか? 10がxに代入されていますよね。戻り値はxですか。
- 締切済み
- Java