22.4.16 [HackerRank]Java Loops II
13432 ワード
▼▼▼▼▼▼▼
import java.util.*;
import java.io.*;
class Solution{
public static void main(String []argh){
Scanner in = new Scanner(System.in);
int t=in.nextInt();
for(int i=0;i<t;i++){
int a = in.nextInt();
int b = in.nextInt();
int n = in.nextInt();
int result = a;
for(int j=0; j<n; j++){
result += Math.pow(2,j) * b;
System.out.printf("%d ", result);
}
System.out.printf("%n");
}
in.close();
}
}
🌱 背景知識
二乗
この方法は二重精度で、入力値も出力値もエラーを表すことができます.
Math.pow(目標数字、指数)の形式を入力すればいいです.
Mathクラスが提供するすべてのクラスは静的です
作成する必要はありません.
public class Pow{
public static void main(String[] args) {
double result = Math.pow(5, 2); //5의 제곱
System.out.println("5의 제곱은: " +result);
}
}
floatは4バイト、doubleは8バイトです.この差に合わせて精度も2倍に向上した.整数型に比べて実数型は精度が低いという問題がある.
解釈と分析
以前の問題と違って、公式が増えて、これはとても慌ただしい問題です.
上記式は整数a,b,nの形式で構成され,qクエリが与えられる.
outputは、各クエリーを1行に表示します.
各クエリーについては、1行にn個のスペースで区切られた形式で出力する必要があります.
import java.util.*;
import java.io.*;
class Solution{
public static void main(String []argh){
Scanner in = new Scanner(System.in);
int t=in.nextInt();
for(int i=0;i<t;i++){
int a = in.nextInt();
int b = in.nextInt();
int n = in.nextInt();
int result = a; // 쿼리 수를 나타내는 정수 a를 result로 받는다.
for(int j=0; j<n; j++){
result += Math.pow(2,j) * b; // a로 받은 result 값에 2의 j제곱 x b의 형태로 나타내야 한다.
//이때 n-1까지만 나타내면 되므로 j<n의 제약을 주어 하나씩 증가시킨다.
System.out.printf("%d ", result); // 그간 풀어왔던 문제들과 마찬가지로 result값을 integer를 출력할 수 있는 %d에 담아 프린트해주면 된다.
//처음에 %d 뒤에 공백을 넣어주지 않아 오류가 났는데, 문제에서 n개의 공백으로 분리된 형태로 출력하라고 했으므로
//""안에 공백까지 포함하여 넣어주어야 한다.
}
System.out.printf("%n"); // 각 쿼리는 single line에 맞춰 출력되어야 하므로 개행처리를 해준다.
}
in.close();
}
}
👉 リファレンス
Reference
この問題について(22.4.16 [HackerRank]Java Loops II), 我々は、より多くの情報をここで見つけました https://velog.io/@apolontes/22.4.16-HackerRankJava-Loops-IIテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol