91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于數的位數

發布時間:2020-06-16 20:24:47 來源:網絡 閱讀:319 作者:syhien 欄目:編程語言

關于數的位數

這是我的第一篇產出! 
求一個數字的位數,可以不斷地%10并計數。 
但是對于一個極大的數,高精度又受限制(我覺得不會有人喜歡寫高精度的),怎么求位數呢?

3939這是一個四位數,我們換一個方法看這個數。 
1.3939>10^0,即3939>1,3939至少有 (0+1) 位數 
2.3939>10^1,即3939>10,3939至少有 (1+1) 位數 
3.3939>10^2,即3939>100,3939至少有 (2+1) 位數 
4.3939>10^3,即3939>1000,3939至少有 (3+1) 位數 
5.3939<10^4,即3939<10000,3939有 (3+1) 位數

從上面的過程易得

對一個數x,它的位數為lg(x)+1

emmm是一個非常顯而易見的結論呢..實戰演練怎么樣呢? 
洛谷https://www.luogu.org/problem/show?pid=2759

題目描述

使得 x^x 達到或超過 n 位數字的最小正整數 x 是多少?

輸入格式

一個正整數 n

輸出格式:

使得 x^x 達到 n 位數字的最小正整數 x

輸入樣例#1:

11

輸出樣例#1:

10

說明

n<=2000000000

2后面是9個0,這個數多大炸不炸希望大家心里有數。

從0枚舉x,希望不大,20分都是奇跡 
蠻明顯的是二分,但是怎么分呢這是個問題。 
這個時候,我們剛剛得到的式子就顯得尤為重要

對一個數x,它的位數為lg(x)+1

本題是x^x,那么位數就是

x*lg(x)+1

而且c的math已經有現成的log,log10了,我們可以直接拿來白嫖。 
log10(double x)返回一個浮點數,后面的位數不需要,轉成×××時會消掉。

#include<iostream>
#include<cmath>
using namespace std;
long long int n,l=1,mid,r=(long long)3e9;
int main()//x^x>=10(n-1)
{
	ios::sync_with_stdio(false);
	cin>>n;
	while(l<r)
	{
		mid=(l+r)/2;
		if(mid*log10(mid)+1>=n)
			r=mid;
		else
			l=mid+1;
	}
	cout<<l;
	return 0;
}

3e9那里的(long long)讓編譯器閉嘴 
非常樸素的二分...

就這樣了!大家快去把它A了吧,提高+/省選-哦!


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民权县| 云林县| 乌拉特前旗| 哈密市| 昌平区| 四子王旗| 福贡县| 玛纳斯县| 金沙县| 石台县| 保靖县| 拜泉县| 柯坪县| 商都县| 芜湖县| 巴中市| 茌平县| 花莲市| 东丽区| 通榆县| 宾阳县| 三穗县| 双牌县| 宜宾县| 榆林市| 河源市| 旅游| 雷山县| 恩施市| 沙坪坝区| 历史| 临澧县| 法库县| 离岛区| 河西区| 雅江县| 绵竹市| 彩票| 夏邑县| 临夏县| 汾西县|