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);
}
}