列表

详情


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

说明:

1\to2\to3\to6\to9

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

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)

上一题