日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenJudge 2739 计算对数

發(fā)布時間:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenJudge 2739 计算对数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.鏈接地址:

http://bailian.openjudge.cn/practice/2739/

2.題目:

總時間限制:
1000ms
內(nèi)存限制:
65536kB
描述
給定兩個正整數(shù)a和b。可以知道一定存在整數(shù)x,使得
x <= logab < x + 1
輸出x
輸入
第1行是測試數(shù)據(jù)的組數(shù)n,每組測試數(shù)據(jù)占2行,分別是a和b。每組測試數(shù)據(jù)之間有一個空行,每行數(shù)據(jù)不超過100個字符
輸出
n行,每組測試數(shù)據(jù)有一行輸出,也就是對應(yīng)的x。輸入數(shù)據(jù)保證x不大于20
樣例輸入
3 10000 100000000000110000 999999999999999999999999999999999999999999999999999999999999 1
樣例輸出
3 2 0

3.思路:

枚舉+高精度乘法+高精度比較+數(shù)學(xué)題

4.代碼:

1 #include <string> 2 #include <vector> 3 #include <algorithm> 4 #include <iostream> 5 #include <cstdio> 6 7 using namespace std; 8 9 string mul(string str1,string str2) 10 { 11 vector<int> v_res(str1.size()+str2.size(),0); 12 string::size_type i,j; 13 vector<int>::size_type k,p; 14 15 reverse(str1.begin(),str1.end()); 16 reverse(str2.begin(),str2.end()); 17 for(i = 0; i != str1.size(); ++i) 18 { 19 for(j = 0; j != str2.size(); ++j) 20 { 21 v_res[i+j] += (str1[i]-'0') * (str2[j] - '0'); 22 } 23 } 24 for(k = 0; k != v_res.size() - 1; ++k) 25 { 26 v_res[k+1] += v_res[k] / 10; 27 v_res[k] = v_res[k] % 10; 28 } 29 30 for(p = v_res.size() - 1; p != -1; --p) 31 { 32 if(v_res[p] != 0) break; 33 } 34 if(p == -1) p = 0; 35 36 string s_res(p+1,'0'); 37 for(k = p; k != -1; --k) s_res[p-k] = char(v_res[k] + '0'); 38 39 40 return s_res; 41 42 } 43 44 int cmp(string str1,string str2) 45 { 46 if(str1.size() != str2.size()) return str1.size() - str2.size(); 47 int i; 48 for(i = 0; i < str1.size(); ++i) 49 if(str1[i] != str2[i]) break; 50 if(i < str1.size()) return (str1[i] - str2[i]); 51 else return 0; 52 } 53 54 int main() 55 { 56 int n; 57 cin>>n; 58 59 string a,b; 60 int i; 61 string x1,x2; 62 while(n--) 63 { 64 cin>>a>>b; 65 x1 = "1"; 66 for(i = 0; i <= 20; ++i) 67 { 68 x1 = mul(x1,a); 69 if(cmp(x1,b) > 0) break; 70 } 71 cout<<i<<endl; 72 } 73 return 0; 74 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/mobileliker/p/3548862.html

總結(jié)

以上是生活随笔為你收集整理的OpenJudge 2739 计算对数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。