MYF

UVa 11636 Hello World!

题目链接

UVa 11636

解题方法:水

题目分析

题目大意

给你一行printf(“Hello World!\n”);,要把这行代码复制成n行同样的代码,问最少需要复制粘贴几次。

解析

从tmp=1,每次乘以2,直到tmp≥n,算乘了多少次就好了。连表都不用打,直接一次次的乘出来就好,不会TLE。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <set>
#include <map>
#include <stack>
#include <cmath>
#include <queue>
#include <cstdio>
#include <string>
#include <vector>
#include <iomanip>
#include <cstring>
#include <iostream>
#include <algorithm>
#define PI acos(-1)
#define debug printf("Hi----------\n")
#define eps 1e-8
#define INF 0x3f3f3f3f
#pragma comment(linker, "/STACK:1024000000,1024000000")
typedef long long ll;
using namespace std;
#define maxn 10005
int main(){
int n,cas=0;
while (scanf("%d",&n)&&n>0) {
int tmp=1,cnt=0;
while (1) {
if (tmp>=n) {
break;
}
tmp*=2;
cnt++;
}
printf("Case %d: %d\n",++cas,cnt);
}
}