結果
| 問題 |
No.219 巨大数の概算
|
| コンテスト | |
| ユーザー |
158b
|
| 提出日時 | 2015-06-03 23:57:08 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 992 bytes |
| コンパイル時間 | 499 ms |
| コンパイル使用メモリ | 73,856 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-07-06 14:02:47 |
| 合計ジャッジ時間 | 8,085 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | WA * 51 |
ソースコード
#include <iostream>
#include <algorithm>
#include <functional>
#include <string>
#include <climits>
#include <vector>
#include <numeric>
#include <complex>
using namespace std;
//ans 9 4 16594101793
int main(){
int n;
long long a[10000],b[10000];
double keta; //double
double moto,moto2;
long long ans1,ans2,ans3;
cin >> n;
for(int i=0; i<n; i++){
cin >> a[i] >> b[i];
}
/*
n=1;
a[0] = 502810717;
b[0] = 1907060147;
*/
for(int i=0; i<n; i++){
//桁数(double)求める
moto = log10(a[i])*b[i];
ans3 = floor(moto);
keta = moto;
//最上位を求める
ans1 = 1;
for(int i=9; i>=1; i--){
if(log10(i) <= keta - floor(keta)){
ans1 = i;
break;
}
}
//次の桁を求められるといいな
ans2 = 0;
for(int i=0; i<=9; i++){
if(log10((double)ans1 + (double)i / 10) >= keta - floor(keta)){
ans2 = i;
break;
}
}
ans2 --;
//合ってるといいな
cout << ans1 << " " << ans2 << " " << ans3 << endl;
}
return 0;
}
158b