NC23869. Chino with Repeater
描述
Chino的数学很差,因此Cocoa非常担心。今天,Cocoa准备教Chino数数。
我们都知道人类的本质之一是复读机,而复读机就是复读别人说过的话。
现在有下面这段程序:
#include <stdio.h> // 包含标准库的信息 main() // 定义名为main的函数,它不接受参数值 { // main函数的语句都被括在花括号中 printf("Hello, world!"); // main函数调用库函数printf以显示字符串序列 }
显然,它的功能是打印一行.
现在,Cocoa想要知道,如果一台复读机每次可以复读若干行(但不超过已有的行数),那么最少复读几次可以让消息记录达到行呢?
题目对Chino来说太难啦,你能帮一帮Chino吗?
输入描述
一个正整数n
输出描述
题目中要求的答案
示例1
输入:
9
输出:
4
说明:
C++14(g++5.4) 解法, 执行用时: 3ms, 内存消耗: 376K, 提交时间: 2019-04-06 13:56:07
#include <stdio.h> int main() { int n; scanf("%d",&n); int i=1,cnt=0; while(i<n) { i*=2; cnt++; } printf("%d\n",cnt); }
C(clang 3.9) 解法, 执行用时: 3ms, 内存消耗: 376K, 提交时间: 2019-04-06 20:56:14
#include <stdio.h> int main(void) { int n,a=1,j=0; scanf("%d",&n); while(a<n)a*=2,j++; printf("%d\n",j); return 0; }
C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 496K, 提交时间: 2020-02-17 23:12:59
#include<bits/stdc++.h> using namespace std; int main() { int x; cin>>x; cout<<(int)log2(x-1)+1; return 0; }
Ruby(2.4.2) 解法, 执行用时: 60ms, 内存消耗: 4640K, 提交时间: 2019-04-06 14:52:18
n=gets.to_i; a=1;cnt=0; while(a<n) do cnt+=1;a=a*2; end puts cnt;
Python3(3.5.2) 解法, 执行用时: 27ms, 内存消耗: 3432K, 提交时间: 2019-04-06 14:06:32
n=int(input()) i=1 while(2**i<n): i+=1 print(i)