zoukankan      html  css  js  c++  java
  • OpenJudge 1.5.27:级数求和

    描述

    已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。

    现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。

    输入一个整数K。输出一个整数n。

    错误答案及解析:

    #include<cstdio>
    using namespace std;
    int main()
    {
    	int i,k;
    	float n=0.0,sn=0;       //此处未注意数据范围 应使用double型
    	scanf("%d",&k);
    	while(sn<=k)
    	{
    		n+=1;
    		sn+=1.0/n;
    		
    	}
    	printf("%d",(int)n);
    	
    	return 0;
    }
    附:
    类型范围
    char 1 个字节 -128 到 127 或者 0 到 255
    unsigned char 1 个字节 0 到 255
    signed char 1 个字节 -128 到 127
    int 4 个字节 -2147483648 到 2147483647
    unsigned int 4 个字节 0 到 4294967295
    signed int 4 个字节 -2147483648 到 2147483647
    short int 2 个字节 -32768 到 32767
    unsigned short int 2 个字节 0 到 65,535
    signed short int 2 个字节 -32768 到 32767
    long int 8 个字节 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
    signed long int 8 个字节 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
    unsigned long int 8 个字节 0 到 18,446,744,073,709,551,615
    float 4 个字节 +/- 3.4e +/- 38 (~7 个数字)
    double 8 个字节 +/- 1.7e +/- 308 (~15 个数字)
    long double 16 个字节 +/- 1.7e +/- 308 (~15 个数字)
    wchar_t 2 或 4 个字节 1 个宽字符
     
    正解:
    #include<cstdio>
    using namespace std;
    int main()
    {
    	int i,k;
    	double n=0.0,sn=0;
    	scanf("%d",&k);
    	while(sn<=k)
    	{
    		n+=1;
    		sn+=1.0/n;
    		
    	}
    	printf("%d",(int)n);
    	
    	return 0;
    }
     
  • 相关阅读:
    (三)字符串、列表、元组、字典
    (二)判断语句和循环语句
    (一)python基础知识
    Python之禅
    《Vue.js实战》一书 p117 练习 1& 2 (2019.12.19)
    React练习 17:02_11_鼠标移过修改图片路径
    React练习 16:02_10_提示框效果
    React练习 15:02_09_单一按钮显示隐藏
    React练习 14:02_08_简易js年历
    React练习 13:02_07_简易选项卡
  • 原文地址:https://www.cnblogs.com/ziyuan122625/p/11931090.html
Copyright © 2011-2022 走看看