洛谷【4】P1035 [NOIP2002 普及组] 级数求和

简介: 洛谷【4】P1035 [NOIP2002 普及组] 级数求和


1.模拟

这种做法的思路是枚举nn从1开始,直到Sn>kSn>k结束,只需要一个循环即可实现。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
  double sn=0,k,t;
  int n;
  scanf("%lf", &k);
  for (n = 1; sn <k; n++)
  {
    t = (1.0) / n;
    sn =sn+t;
  }
  printf("%d", n);
  return 0;
}

空间复杂度O(1)O(1)

时间复杂度O(e^{k-\gamma})O(ek−γ)(求法见做法2)

(如果那个\gammaγ可以约去的话,应该是O(e^k)O(ek),但并不知道可不可以约去)

2.数论(调和级数)

这里1

这里2

代码:

#include<cstdio>
#include<cmath>
const double gamma=0.5772156649;
int main() {
    int k,n;
    scanf("%d",&k);
    n=exp(k-gamma)+0.5;
    printf("%d",n);
    return 0;
}



相关文章
|
8月前
【洛谷 P1035】[NOIP2002 普及组] 级数求和 题解(循环)
**NOIP2002普及组题目:求级数$S_n=1+\frac{1}{2}+\frac{1}{3}+...+\frac{1}{n}$超过$k$的最小$n$。给定$1\leq k\leq 15$,输出满足$S_n&gt;k$的$n$。输入$1$个整数$k$,输出相应$n$。例如,输入$1$,输出$2$。代码中使用double确保精度,通过累加求和判断条件找到$n$。**
63 0
|
8月前
|
机器学习/深度学习 人工智能
【洛谷 P1028】[NOIP2001 普及组] 数的计算 题解(递推)
在NOIP2001普及组的数的计算题目中,给定自然数`n`,需构造遵循特定规则的合法数列。合法序列始于`n`,新元素不超过前一项的一半。任务是找出所有这样的数列数量。例如,当`n=6`时,合法序列包括`6`, `6,1`, `6,2`, `6,3`, `6,2,1`, `6,3,1`。程序通过动态规划求解,当`i`为奇数时,`a[i] = a[i - 1]`;为偶数时,`a[i] = a[i - 1] + a[i / 2]`。代码中预处理数组`a`并输出`a[n]`作为答案。输入`n`后,程序直接计算并打印合法数列个数。
93 0
洛谷P1030 [NOIP2001 普及组] 求先序排列
洛谷P1030 [NOIP2001 普及组] 求先序排列
|
人工智能
【洛谷】【区间dp】【高精度】P1005 [NOIP2007 提高组] 矩阵取数游戏
【洛谷】【区间dp】【高精度】P1005 [NOIP2007 提高组] 矩阵取数游戏
317 0
|
机器学习/深度学习 iOS开发 Windows
P2671 [NOIP2015 普及组] 求和(前缀和)
P2671 [NOIP2015 普及组] 求和(前缀和)
154 0
|
8月前
【洛谷 P1088】[NOIP2004 普及组] 火星人 题解(全排列+向量)
**火星人问题摘要:** NOIP2004普及组竞赛中的题目,涉及火星人用手指的排列表示数字。人类需计算火星人数字与给定数值之和的新排列。给定火星人手指数N(≤10000),加上的数M(≤100),以及初始排列,要求输出新排列。30%的数据中N≤15,60%的数据中N≤50。使用`next_permutation`函数找到第M个排列。样例:N=5, M=3, 初始排列1 2 3 4 5,输出1 2 4 5 3。
94 0
|
机器学习/深度学习
P2181 对角线和P1030 [NOIP2001 普及组] 求先序排列
P2181 对角线和P1030 [NOIP2001 普及组] 求先序排列
P2181 对角线和P1030 [NOIP2001 普及组] 求先序排列
|
存储
【洛谷】【动态规划】【高精度】P1018 [NOIP2000 提高组] 乘积最大
【洛谷】【动态规划】【高精度】P1018 [NOIP2000 提高组] 乘积最大
315 0
|
8月前
|
C++
【洛谷 P1075】[NOIP2012 普及组] 质因数分解 题解(判断质数)
NOIP2012普及组题目,给定合数$n$由两个不同质数乘积组成,求较大质数。输入一个正整数$n$,输出较大质因子。例如输入21,输出7。代码使用C++,通过循环和质数判断找到能整除$n$的质数,再求另一个质数,并输出较大者。
103 0
|
8月前
|
机器学习/深度学习 存储
【洛谷 P1028】[NOIP2001 普及组] 数的计算 题解(递归)
**NOIP2001普及组数的计算**:给定自然数\( n \),构造数列,新数不超过序列最后一项一半。求合法数列个数。输入\( n \)(\(1 \leq n \leq 10^3\))。样例:输入6,输出6。递归解决,代码中定义函数`f`实现递归计算,总和存储在`cnt`中,最后输出。
73 0

热门文章

最新文章