Forrest


私信TA

用户名:dotcpp0717441

访问量:1633

签 名:

等  级
排  名 150
经  验 7089
参赛次数 1
文章发表 78
年  龄 0
在职情况 教师
学  校 优学乐程
专  业

  自我简介:

解题思路:自然数的个数递推式:h[i] = h[1] + h[2] +...+ h[i/2]; s[i] 为h[i] 前缀和,所以h[i] = 1 + s[i/2](扩展出的自然数包括i本身); 计算前缀和s[i] =   s[i-1] + h[i];

注意事项:

参考代码:

#include<iostream>
#include<limits> 
using namespace std;
const int N = 1e5 + 10;
int h[N],s[N];

int main()
{
	int n;
	cin >> n;
	for(int i = 1; i <= n; i ++){
		h[i] = 1 + s[i/2];
		s[i] = s[ i - 1 ] + h[i];
	}
	cout << h[n]; 
	return 0;
}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区