入門級CF1766A題解-創(chuàng)新互聯(lián)

#入門級CF1766A題解
這是一道學完循環(huán)結(jié)構(gòu)就可以去做的入門級的題目。
題目鏈接
翻譯一下:
如果一個正整數(shù)只有一個非零數(shù)字,我們將其稱為極圓整數(shù)。例如,5000、4、1、10、200是極圓整數(shù);42、13、666、77、101不是。

為茂南等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及茂南網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都做網(wǎng)站、網(wǎng)站制作、茂南網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

給你一個整數(shù)n。你要計算極圓整數(shù)的數(shù)量x, 1 ≤ x ≤ n 1≤x≤n 1≤x≤n。

輸入:
第一行包含一個整數(shù)t( 1 ≤ t ≤ 1 0 4 1≤t≤10^4 1≤t≤104)-測試用例的數(shù)量。
然后,接下來有 t t t行。第 i i i行包含一個整數(shù) n ( 1 ≤ n ≤ 999999 ) n(1≤n≤999999) n(1≤n≤999999)。

輸出:
對于每個測試用例,輸出一個整數(shù),表示極圓整數(shù)的數(shù)量 x , ( 1 ≤ x ≤ n ) x,(1≤x≤n) x,(1≤x≤n)

題解:
很明顯,極圓整數(shù)是固定的。
1位 1、2、3…9
2位10、20、30 … 90
3位100、200、300… 900

數(shù)據(jù)范圍是 n ( 1 ≤ n ≤ 999999 ) n(1≤n≤999999) n(1≤n≤999999),所以大就是
6位100000、200000、300000、…、900000

給的每個數(shù)字n,其實就是在找1~n范圍里計數(shù)所有的極圓整數(shù)的個數(shù)。
其實就是需要知道n是幾位的數(shù)字(假設是m位),然后n的最高位數(shù)字是d,那么計數(shù)器cnt+=d,然后接下來cnt+=(m-1)*9即可。
總而言之,這道題就演變成了,求n是幾位數(shù)字,并且最高位是幾。
怎么求n是幾位數(shù)字?
while循環(huán) 不斷整除100000、10000、1000、100、10、1,當整除的結(jié)果不為零,那么就可以break了,記錄位數(shù)m即可。

參考代碼:

#includeusing namespace std;
int main()
{int t,n,x,m,cnt,f;
	cin>>t;
	while(t--)
	{cin>>n;
	    x=100000;
	    m=6;
	    cnt=0;
	    f=n/x;
		while(f==0)
		{   x/=10;
		   f=n/x; 
		   m--;
	    }
	    cnt+=f;
	    cnt+=(m-1)*9;
	    cout<

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當前文章:入門級CF1766A題解-創(chuàng)新互聯(lián)
本文來源:http://muchs.cn/article16/pgsgg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站、網(wǎng)站導航、服務器托管、虛擬主機、微信小程序Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)