鱼C论坛

 找回密码
 立即注册
查看: 2096|回复: 5

[已解决]关于csp题目的问题

[复制链接]
发表于 2021-10-26 22:38:02 | 显示全部楼层 |阅读模式
10鱼币
我是初学者,别喷

题目链接https://www.luogu.com.cn/problem/P1035

写了两份

这个过了
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    double s=0.0000;
    int n,k;
    cin>>k;
    for(n=0;s<=k;)  
    {    
        n++;
        s+=(1.0/n);
    }
    printf("%d",n);
    return 0;
}

这个没过
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    double s=0.0000;
    int n,k;
    cin>>k;
    for(n=1;s<=k;n++)  s+=(1.0/n);
    printf("%d",n);
    return 0;
}

这两份有啥区别啊?有没有dalao指点下?
最佳答案
2021-10-26 22:38:03
C++
#include <iostream>

double S(int n){
    double sum = 0;
    for(int i = 1; i < n+1; i++) sum += (1/(float)i);
    return sum;
}

int main(){
    int n = 1, k;
    std::cin >> k;
    while(S(n) <= k) n++;
    std::cout << n << std::endl;
    return 0;
}
C
#include <stdio.h>

double S(int n){
    double sum = 0;
    for(int i = 1; i < n+1; i++) sum += (1/(float)i);
    return sum;
}

int main(){
    int n = 1, k;
    scanf("%d", &k);
    while(S(n) <= k) n++;
    printf("%d", n);
    return 0;
}
Python
S = lambda n: sum([(1/i) for i in range(1, n+1)])
k = int(input())
n = 1
while S(n) <= k:
    n += 1
print(n)
5
83

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-26 22:38:03 | 显示全部楼层    本楼为最佳答案   
C++
#include <iostream>

double S(int n){
    double sum = 0;
    for(int i = 1; i < n+1; i++) sum += (1/(float)i);
    return sum;
}

int main(){
    int n = 1, k;
    std::cin >> k;
    while(S(n) <= k) n++;
    std::cout << n << std::endl;
    return 0;
}
C
#include <stdio.h>

double S(int n){
    double sum = 0;
    for(int i = 1; i < n+1; i++) sum += (1/(float)i);
    return sum;
}

int main(){
    int n = 1, k;
    scanf("%d", &k);
    while(S(n) <= k) n++;
    printf("%d", n);
    return 0;
}
Python
S = lambda n: sum([(1/i) for i in range(1, n+1)])
k = int(input())
n = 1
while S(n) <= k:
    n += 1
print(n)
5
83
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-27 07:59:00 | 显示全部楼层
应该是顺序问题吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-27 08:30:27 | 显示全部楼层
for(n=0;s<=k;)
for(n=1;s<=k;n++)

一个从0开始,一个从1开始,不一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-27 10:44:44 | 显示全部楼层

但第一次运行时理论来讲n都是1啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-27 11:16:56 | 显示全部楼层
本帖最后由 hrpzcf 于 2021-10-27 12:25 编辑
yangdoubao 发表于 2021-10-27 10:44
但第一次运行时理论来讲n都是1啊


因为第二个,循环最后一步是n++,结果多1了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 19:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表