🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

Q&A

解決済

1回答

277閲覧

数字を後ろからかけ算する方法

Gingerale09

総合スコア8

Java

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

0グッド

0クリップ

投稿2021/03/09 06:03

編集2021/03/10 04:47

前提・実現したいこと

今、配列とメゾットを勉強しています。
ユーザーが入力した数字を逆から掛けていくシステムを作りたいです。
7 -5 4 -3 2 と入力したら
アウトプットが
840 120 -24 -6 2
となるようにしたいのですが、逆からかけていく仕組みもその前の工程もわかりません。

該当のソースコード

Java

1import java.util.Scanner; 2 3public class Task1_5 { 4 5 public static int main() { 6 7 //1. ask for how many numbers 8 9 Scanner in = new Scanner(System.in); 10 System.out.println("How many numbers?"); 11 int i = input.nextInt(); 12 int[] array = new int[i]; 13 return 0; 14 } 15 16 //2.input those numbers into arrays 17 18 public static int addValues(int[] arr) { 19 Scanner in = new Scanner(System.in); 20 for (int i = 0; i < arr.length; i++) { 21 System.out.println("enter number " + (i + 1)); 22 arr[i] = in.nextInt(); 23 } 24 return 0; 25 } 26 //3. multiply them 27 28 public static void multiplyArray(int[] nums, int[] multiply) { 29 int total; 30 for (int i = 0; i < nums.length; i++) { 31 total = 1; 32 for (int j = nums.length; j > i; j--) { 33 total *= nums[(j - 1)]; 34 } 35 multiply[i] = total; 36 37 } 38 } 39 //4.print them out 40 41 public static void main(String[] args) { 42 int result = 0; 43 44 System.out.println("Here is the result: "); 45 int [] multiplyArray = new int [result]; 46 int [] valuesArray = new int [result]; 47 48 addValues(valuesArray); 49 50 multiplyArray(valuesArray, multiplyArray); 51 System.out.println(Arrays.toString(multiplyArray)); 52 53 } 54} 55 56

エラーメッセージ

error: cannot find symbol int numVals = findVal(); symbol: method findVal() location: class Multiply 1 error

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

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

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

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

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

dodox86

2021/03/09 06:16

> 逆からかけていく仕組みもその前の工程もわかりません。 Javaでのプログラミングは置いておいて、まずご自身の頭の中でどう計算していくか、その手順を細かく分解できるかどうかだと思いますがいかがですか。頭の中でできないことはプログラミングで再現できません。
m.ts10806

2021/03/09 06:19

前からができるなら逆からもできます。 いま、どこまで出来てますか?
Luice

2021/03/09 06:51

実ロジックは乗算と表示だけなので、ほぼアルゴリズムの問題ですね。 dodox86さんの言うとおりプログラムは一旦置いておいて、 結果を導くための手順を考えるのが良いです。
Gingerale09

2021/03/10 04:36

アドバイスありがとうございます。 計算方法自分だけでは考えつきませんでした。 今のコードはここまでできています。 これから 1 数字をきく 2 配列に変換する 3 全数字をかける 4 先頭の数字から割る 5 結果をプリント にしたいのですがメゾッドを使いこなせません。
dodox86

2021/03/10 05:16

> 今のコードはここまでできています。 ... > にしたいのですがメゾッドを使いこなせません。 ん? コードはできている、ということではないのですか?ひとつのメソッドに切り出したいけど、できないということなのでしょうか。 ※尚、メゾッドではなく、一般的にはカタカナ読みで、メソッド(method)と呼びます。 メソッドに切り出すのが難しいのであれば、無理してそうしなくても良いのではと思います。 ご提示のコード中、addValues()やmultiplyArray()などの名前で作らなくてはいけない訳ではないのですよね。「それらの名前のメソッドで作らなければいけない」としたら、初心の方にとってはそれはそれでひとつの課題だと思います。
Gingerale09

2021/03/10 06:07

大学の課題なのですが、条件として 配列の作成と変更 配列をメソッドのパラメータとして渡す 多次元配列のトラバース 配列の値を使って集計計算をする が挙げられていました。 名前に指定はないですが、メソッドを理解したいです。
Gingerale09

2021/03/10 06:10

パワーポイントが配布されるのみのクラスなので、ほとんど自分で調べて課題を提出しています。先週から教授に質問のメールを送っているのですが、返信がこなく困っていたためこのサイトで聞きました。 コードを書いている途中でどうやっていいか分からなくなっています。。結果の表示がうまくいかないため、自分の計算がどうなっているかも分からないです。
dodox86

2021/03/10 06:21

(必ずしも本質問に回答する訳ではないのですが)いち回答者の立場から書かせてもらうと、本質問としては「数字を後ろからかけ算する方法」が主題のはずなので、あらゆる条件のクリアを回答中に求めてしまうと回答はしづらくなり、結果、回答者も離れていきがちになります。答えられない訳ではなく、回答後に質問者がそれをすぐ理解できるとは限らない為、質疑応答が長引きがちになる為です。現に、今現在いただいた回答では閉じられないのですよね。全てを最初から片付けるのではなく、ひとつひとつクリアしていったらいかがでしょうか。
dodox86

2021/03/10 06:26

> パワーポイントが配布されるのみのクラス コロナ禍の事情なのでしょうが、学生さんらにとっては気の毒であるとは思います。
guest

回答1

0

ベストアンサー

全部を掛けた数字を出力したあとに、配列の先頭から順に割ったものを表示すれば良いかと。

840
840 / 7 (120)
120 / -5 (-24)

みたいに。

投稿2021/03/09 06:40

momon-ga

総合スコア4826

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

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

Gingerale09

2021/03/10 04:30

先頭から順に割ると答えが導き出せるのは、考えつかなかったです。ありがとうございます。
Gingerale09

2021/03/11 16:53

できました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問