不知道你聽沒聽說過這樣乙個腦筋急轉彎。
2元可以買一瓶汽水(玻璃瓶裝的),因為瓶身是玻璃瓶的比較貴,所以兩個瓶身可以換一瓶汽水。你現在有4元錢,問最多能喝到多少瓶汽水?
答案是4瓶。一開始先用4元錢買兩瓶汽水喝掉,再用這兩瓶的汽水的瓶身換一瓶喝到,最後還剩乙個瓶身,這個時候再朝小賣部的老闆借乙個瓶身。換一瓶汽水喝掉之後再還給他乙個瓶身。
現在問題來了,一開始你有n元錢,然後你最多可以向老闆借乙個瓶身(注意要還的),問你最多能喝到多少瓶汽水?
第一行是乙個正整數t(t<=100)表示有t組案例。
對於每組案例,輸入乙個正整數(1<=n<=10^100)。
(請注意輸入資料的範圍,n有10的100次方那麼大)
對於每組案例,輸出一行乙個正整數表示最多能夠喝到的汽水數目
示例1
3
1
2
1000000000000000000000000000000減』0』表示由字元轉換成數字
0
2
1000000000000000000000000000000
1塊錢不能購買汽水,所以共喝到0瓶
2塊錢先買一瓶汽水,喝完以後再借乙個空瓶,換一瓶,喝掉以後還給老闆。所以一共可以喝到2瓶。
請選用合理的資料型別。
int 型的最大值為2147483647。
long long 型的最大值為9223372036854775807。
float的有效數字為6位。
double的有效數字為12位。
所以本題無法使用以上資料型別處理。
【思路與難點】:我覺得這道題難就難在了怎麼存放和輸出n有10的100次方那麼大的數上面,可以看出在c語言中已經沒有資料型別可以存放的了,所以想到了字串--因為字串可以很長,所以我們可以不用再把這麼大的數看成1個數了,而是看成有100位的自然數(1—9)組成的乙個字串,【所以把這個的每一位存到乙個陣列中也就,只需要陣列的大小為100即可】 之後,判斷是否為偶數,就只需要用 「位」 的方法用最後一位來判斷即可了。
至於為什麼除1外,其他數的結果都是它本身,你多寫幾個例子你就發現了,奇數時因為剩餘的1元,沒有辦法了,所以和這個奇數的前乙個數(偶數)是一樣的。
【c源程式如下】:
#include#includeint main()
; int nn,b=0;
scanf("%d",&nn);
while(nn>0)
nn--;
} return 0;
}
【c++源程式**如下】:
#include #include #include using namespace std;
typedef long ll;
int main()
return 0;
}
arraylist中最多能放多少元素
目前arraylist的size方法返回的是乙個int,所以它最多能放integer.max value 2 31 1 個元素。你可以估計元素的大小來估計你的程式會占用多少記憶體啊。寫乙個簡單的程式,在裡頭把一萬個 或更多 越多越準 db資料元素放進乙個arraylist然後用一句system.in...
shell陣列最多能當多少元素 Shell 陣列
shell 陣列 陣列中可以存放多個值。bash shell 只支援一維陣列 不支援多維陣列 初始化時不需要定義陣列大小 與 php 類似 與大部分程式語言類似,陣列元素的下標由0開始。shell 陣列用括號來表示,元素用 空格 符號分割開,語法格式如下 array name value1 valu...
mysql中VACHAR最多能存多少值
mysql的記錄長度是有限制的,不是無限長的,這個長度是64k,即65535個位元組,對所有的表都是一樣的。mysql對於變長型別的字段會有1 2個位元組來儲存字元長度。已知乙個位元組 8位二進位制,即2 8 1 255 字元數小於255時,2 8 1 255,則mysql只需要用乙個位元組來記錄字...