static class Test {
//需要求和的索引
int sumID = 45
//需要求值的索引
int valueID = 42
//需要计算的次数
int needC = 0
public Test(int sumIndex, int valueIndex) {
sumID = sumIndex
valueID = valueIndex
if (sumIndex >valueIndex) {
needC = sumIndex
} else {
needC = valueIndex
}
}
long v1 = 0
long v2 = 1
long v3 = 1
long Sum = 0
long Value = 0
private void fun() {
if (needC <3) {
long[] values = {v1, v2, v3}
for (int i = 0i <needCi++) {
if (i <= sumID) {
Sum += values[i]
}
if (i == valueID) {
Value = values[i]
}
}
} else {
for (int m = 3m <= needCm++) {
long v = v1 + v2 + v3
System.out.println("第" + String.valueOf(m) + "项值为:" + String.valueOf(v))
v1 = v2
v2 = v3
v3 = v
if (m == valueID) {
Value = v
}
if (m <= sumID) {
Sum += v
}
}
}
}
public void output() {
fun()
System.out.println("前" + String.valueOf(sumID) + "和为:" + String.valueOf(Sum) + ",第"
+ String.valueOf(valueID) + "项值为:" + String.valueOf(Value))
}
}
public static void main(String[] args) {
Test tt = new Test(45, 42)
tt.output()
}
}
这种题目千万不要用递归函数解答,这样就完了,考察的是规律不是机械!!!
public static void main (String [] arg) {int m=2,n=10
double result=0.00
for (int i =mi <=ni++) {
result+=(i%2==0?1:-1)/(double)i
}
System.out.println(result)
}
public class Test{public void calSum()
{long num = 9// 数列的各个项,后面会改变其值,使用 long, 因为 int 会超范围
long sum = num// 存放数列和,使用 long, 因为 int 会超范围
// 因为只到9999999999,所以只用 9 次
for (int i = 0i <9i++)
{num = num * 10 + 9// 根据数列当前项得到下一项的值
sum += num// 计算目前为止所有数的和}
System.out.println("9+99+999+...+9999999999=" + sum)}
public static void main(String[] argv)
{Test test = new Test()
test.calSum()}}
或者public class Test{ public void calSum(){ long num = 9// 数列的各个项,后面会改变其值,使用 long, 因为 int 会超范围long sum = num // 存放数列和,使用 long, 因为 int 会超范围 // 因为只到9999999999,所以只用 9 次for (int i = 0i <9i++){num = num * 10 + 9 // 根据数列当前项得到下一项的值sum += num // 计算目前为止所有数的和 } System.out.println("9+99+999+...+9999999999=" + sum) } public static void main(String[] argv){Test test = new Test()test.calSum()}