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