当前位置: 代码迷 >> 综合 >> 洛谷P1028数的计算
  详细解决方案

洛谷P1028数的计算

热度:75   发布时间:2024-01-28 06:15:14.0

首先,我们来看一下这道题的规律

a[1]=1;

a[2]=a[1]+1;//即小于等于二分之一自身的数的满足题意的个数+自身

......

a[n]=a[n/2]+...a[1]+1;

如此以来复杂度为O(n^2)的算法就完成了,如下所示:

include<bits/stdc++.h>
using namespace std;
int n,num,a[1001];//定义题目范围内的数组 
int main()
{cin>>n;//输入 for(register int i=1;i<=n;i++)//遍历1-n的数组 {    for(register int j=1;j<=i/2;j++)//定义1-n的数组 { //注意这里每个数定义的舒缓,满足条件的是小于等于自身的数,即i/2 a[i]+=a[j];}a[i]++;//加上自身 }cout<<a[n];//输出 

 

  相关解决方案