天天看點

ZZULOJ1058: 求解不等式

1058: 求解不等式

時間限制: 1 Sec 記憶體限制: 128 MB

送出: 32206 解決: 16831

[狀态] [讨論版] [送出] [命題人:admin]

題目描述

已知不等式 1!+2!+3!+…+m!‹n,請程式設計對使用者指定的n值計算并輸出滿足該不等式的m的整數解。

輸入

輸入一個整數n,n為int範圍内的正整型。

輸出

輸出m的取值範圍,具體格式見輸出樣例。

樣例輸入 Copy

2000000000

樣例輸出 Copy

m<=12

每日一題:今天練習這個題。在設計代碼的時候,邏輯上出現了很多錯誤,經過了很多次的設計終于成功了。

總結:通過這個題我明白了for循環和while循環的差別。

for循環先執行代碼塊,再進行末尾循環體i++

while循環是先判斷然後就執行循環體。是以i++需要放到if判斷的後面。

最後附上我寫的代碼

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
    	int i=1;
    	double sum=0,temp=1;			//sum為階乘的和,temp為階乘	
    	Scanner input = new Scanner(System.in);
    	double n = input.nextDouble();
    	do{

    		temp = temp*i;		//計算階乘
    		
    		sum = sum + temp;	//計算階乘的和
    		
    	
    		//先進行判斷,如果符合條件就直接跳出,不然就i++繼續執行循環
    		if (sum >= n) {
				System.out.printf("m<=%d\n",i-1);
    			break;
    			}
    		
    		i++;
			}while(true);		
    }
}
           

繼續閱讀