説明
既知:SN = 1 + 1/2 + 1/3 + ... + 1 / N。nは十分に大きい場合に明らかK整数任意ため、SnがKよりも大きいです
今K(1 <= K <= 15)の整数で与えられ、nは計算の最小値を必要とし、その結果のSn> K.
整数Kを入力します。出力整数n。
間違った答えと分析:
#include <cstdioを>
使用して名前空間STD ; INT メイン(){ int型I 、K 、フロートN- = 0.0 、のSn = 0 ; //ここでデータ範囲がダブルタイプ使用するべきではないことに留意scanfの("%のD" 、&K を); 一方(SN <= K ){N- + = 1 ;のSn + = 1.0 / N- ; } のprintf ("%のD" 、(INT )N- ); 戻り0 ; } 添付:
タイプ | 位 | スコープ |
---|---|---|
CHAR | 1つのバイト | 255から127または0〜-128 |
unsigned char型 | 1つのバイト | 0から255 |
signed char型 | 1つのバイト | 127 -128 |
int型 | 4つのバイト | -2147483648へ2147483647 |
unsigned int型 | 4つのバイト | 0-4294967295 |
署名のint | 4つのバイト | -2147483648へ2147483647 |
short int型 | 2つのバイト | -32768〜32767 |
符号なしshort int型 | 2つのバイト | 0〜65535 |
署名したshort int型 | 2つのバイト | -32768〜32767 |
long int型 | 8つのバイト | 9,223,372,036,854,775,807に-9,223,372,036,854,775,808 |
符号付きlong int型 | 8つのバイト | 9,223,372,036,854,775,807に-9,223,372,036,854,775,808 |
符号なしlong int型 | 8つのバイト | 0〜18,446,744,073,709,551,615 |
浮く | 4つのバイト | +/- 3.4E +/- 38(〜7桁) |
ダブル | 8つのバイト | +/- 1.7E +/- 308(〜15桁) |
長い二 | 16のバイト | +/- 1.7E +/- 308(〜15桁) |
wchar_t型 | 2つのまたは4バイト | ワイド文字 |
正解:
書式#include <cstdioを>
使用して名前空間stdを、 INT メイン(){ I int型、kは、ダブルN = 0.0 、SN = 0 。scanf関数("%のD" 、&K ); 一方(SN <= K ){N + = 1 ; SN + = 1.0 / N 。} のprintf ("%dの" 、(INT )N )。リターン0 ; }