題目描述
正在上學的同學們一定很向往大學畢業進入職場,成為一名光榮的程式員,然后大秀自己的代碼功力,得到老板的賞識、迎娶白富美、成為CEO、從此走上人生巔峰...咳咳,扯遠了,但是小A同學就有著上述夢想,日有所思夜有所夢,終于小A同學夢到自己大學畢業成為了一名光榮的程式員,應聘進了一家知名公司去搬磚,搬磚就要有工資啊,在跟老板討論薪資的時候,想到在書上看過的《國王賞不起的米》(沒讀過的同學不要怕,此頁面底部有整篇文章,可以順便讀一下),計上心頭,對老板說:不如這樣,我第一天只要1塊的工資,其后每天工資是前一個天的兩倍,也就是前5天的工資分別是1、2、4、8、16塊。老板一聽,簡直太劃算啦,就這么愉快地決定了。而聰明的你一定知道,由于每天翻倍的原因,等到后面小A同學的工資是個恐怖的數字,但是前面一些天小A同學的工資是真的低啊,都不夠吃飯,俗話說人是鐵飯是鋼,一頓不吃餓的慌,小A同學很可能沒等到走上人生巔峰就已經餓的光榮犧牲,如果某天小A同學吃不起飯,那他就會光榮犧牲。
現在設飯價是a元,而小A同學原本就有b元,請問小A同學能夢到他走上人生巔峰(就是沒有犧牲)的那一刻么?
輸入
第一行一個數字t(0<t<=1000),代表測驗資料的組數。其后有t組測驗資料,每組兩個數字a, b,分別代表飯價a和小A同學的初始資金b。測驗資料保證a,b均在[1,100000]之間。
輸出
如果小A同學可以夢到他走向人生巔峰的那天,請輸出一個"YES",否則請輸出一個"NO"。每個輸出占一行。
樣例輸入
2
100 1
2 100
樣例輸出[/code]
NO
YES
#include<iostream>
#include<cmath>
using namespace std;
main()
{
int t,i;
double a,b,s,x=1.0;
cin>>t;
for(i=1;i<=t;i++)
{
cin>>a>>b;
s=b;
while(x<a)
{
s=s+x-a;
x=x*2.0;
if(s<0)break;
}
if(s<0)cout<<"NO"<<endl;
if(s>=0)cout<<"YES"<<endl;
}
}
#include<iostream>
#include<cmath>
using namespace std;
main()
{
int t,i,a,b,s,j=0;
cin>>t;
for(i=0;i<t;i++)
{
cin>>a>>b;
s=b;
for(j=0;j<=a;j++)
{
s=s+pow(2,j)-a;
if(s<0)break;
}
if(s<0)cout<<"NO"<<endl;
if(s>=0)cout<<"YES"<<endl;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/267705.html
標籤:C++ 語言
下一篇:演算法題目求解
