1514:数値の整数次数@jobdu
1922 ワード
タイトル1514:数値の整数次数
時間制限:1秒
メモリ制限:128メガ
特殊問題:いいえ
コミット:377
解決:103
タイトルの説明:
doubleタイプの浮動小数点数baseとintタイプの整数exponentを指定します.baseのexponent次数を求めます.
入力:
入力には、複数のテストサンプルが含まれる場合があります.各入力ファイルについて、最初の行にはテストケースの数を表す整数Tが入力され、次のT行には浮動小数点数baseと整数exponentが入力され、2つの数の間に1つのスペースで区切られています.
出力:
各テストケースに対応して、浮動小数点数を出力して答えを表し、小数点数を2桁保持すればよい.
サンプル入力:
サンプル出力:
ヒント:
特に、異なるコンパイラが科学カウント法フォーマット出力における指数ビット数の違いに注意してください.9度Online Judgeで使用するコンパイル環境を推奨します.
最後のグループのデータがなぜか通らないので、記録をめくってみると、Javaで作ったACが1つもないことに気づき、時間を無駄にしなくなった.
C++バージョンの参照可能な2つ:アルゴリズムは同じです
http://blog.csdn.net/SunnyYoona/article/details/14646053
http://blog.csdn.net/arcsinsin/article/details/12917119
時間制限:1秒
メモリ制限:128メガ
特殊問題:いいえ
コミット:377
解決:103
タイトルの説明:
doubleタイプの浮動小数点数baseとintタイプの整数exponentを指定します.baseのexponent次数を求めます.
入力:
入力には、複数のテストサンプルが含まれる場合があります.各入力ファイルについて、最初の行にはテストケースの数を表す整数Tが入力され、次のT行には浮動小数点数baseと整数exponentが入力され、2つの数の間に1つのスペースで区切られています.
出力:
各テストケースに対応して、浮動小数点数を出力して答えを表し、小数点数を2桁保持すればよい.
サンプル入力:
5
1.0 10
0.0 -5
1.0 0
1.2 5
2.0 -1
サンプル出力:
1.00e+00f
INF
1.00e+00f
2.49e+00f
5.00e-01f
ヒント:
特に、異なるコンパイラが科学カウント法フォーマット出力における指数ビット数の違いに注意してください.9度Online Judgeで使用するコンパイル環境を推奨します.
最後のグループのデータがなぜか通らないので、記録をめくってみると、Javaで作ったACが1つもないことに気づき、時間を無駄にしなくなった.
C++バージョンの参照可能な2つ:アルゴリズムは同じです
http://blog.csdn.net/SunnyYoona/article/details/14646053
http://blog.csdn.net/arcsinsin/article/details/12917119
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class S11 {
public static void main(String[] args) throws FileNotFoundException {
BufferedInputStream in = new BufferedInputStream(new FileInputStream("in.in"));
System.setIn(in);
Scanner cin = new Scanner(System.in);
while (cin.hasNextInt()) {
long n = cin.nextInt();
for(int i=0; i<n; i++){
double ret = power(cin.nextDouble(), cin.nextInt());
if(ret != Double.POSITIVE_INFINITY){
System.out.println(String.format("%.2ef", ret));
}else{
System.out.println("INF");
}
}
}
}
public static double power(double base, int n){
if(n == 0){
return 1;
}
if(n == 1){
return base;
}
if(n < 1){
return 1.0/power(base, -n);
}
if((n & 1) == 1){ // odd
double tmp = power(base, (n-1)>>1);
return tmp * tmp * base;
}else{
double tmp = power(base, n>>1);
return tmp * tmp;
}
}
}