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;
    }
     
  • 相关阅读:
    安卓日志输出-logger
    RecyclerView的使用(3)之加入Header和Footer
    这些年我踩过的坑——Android
    精简点名IAP错误
    Android中BitmapFactory.Options详解
    在Android下通过ExifInterface类操作图片的Exif信息
    android 生成随机数
    JSON入门之二:org.json的基本使用方法
    Android中的各种访问权限Permission含义
    jar命令的用法详解
  • 原文地址:https://www.cnblogs.com/ziyuan122625/p/11931090.html
Copyright © 2011-2022 走看看