链接
题目:
A tourist gets lost in the desert with n liters of water. He drinks positive integer units of water each day.
Write a program to calculate how many different ways the tourist can drink up the water.
Input
The first line contains the number of test cases T(T≤10)T(T≤10).
Next TT lines contain the number n(1≤n≤1000000)n(1≤n≤1000000) for each test case.
Output
Output consists of TT lines.
Each line contains the binary number which represents number of different ways to finish up the water specified in the test case.
Sample Input
1
3
Sample Output
100
Hint
3 liters of water can be comsumed in four different ways show in the following.
- 1 1 1
- 1 2
- 2 1
- 3
If we write 4 in binary, it’s 100.
Specified 明确规定
题目大意:先输入一个t,接着输入t组数据n。n表示为n升水 (n liters of water),问你可以分几天喝完。找出总共m种方案,蓝后妮,输出m的二进制。其中n(1≤n≤1000000) ;
要点1:
要点2:给出n升水,计算m种方案。先列出前几种,可以大胆猜测m=2^(n-1).
要点3:n最大可以为100万,2的100万次方,好可怕!你女朋友,不像我,我只会心疼gie gie!搞错了……所以要么用字符串表示,要么找规律无脑输出;
不妨大胆举例一下:
2^0 | 2^1 | 2^2 | 2^3 | 2^4 | 2^5 |
---|---|---|---|---|---|
1 | 2 | 4 | 8 | 16 | 32 |
1 | 10 | 100 | 1000 | 10000 | 100000 |
为什么是这样呢?可以按顺序计算一下,发现后边的多乘一个2,二进制又一直除2,所以每次都多一个0 。
AC代码:
#include<stdio.h>
int main()
{
int t,i,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("1");
for(i=0;i<n-1;i++)
printf("0");
printf("\n");
}
}
By the end , i 'm bigclever,wish you more and more wise.😐 😐