A B C
0 20 20
1 26 46
2 34 80
3 44 124
4 57 181
5 74 255
6 96 351
7 125 476
8 163 639
9 212 851
10 233 1084
11 256 1340
12 282 1622
13 310 1932
14 341 2273
15 375 2648
16 413 3061
17 454 3515
18 499 4014
19 549 4563
20 565 5128
21 582 5710
22 599 6309
23 617 6926
24 636 7562
25 655 8217
26 675 8892
27 695 9587
28 716 10303
29 737 11040
30 748 11788
31 759 12547
32 770 13310
33 782 14092
34 794 14886
35 806 15692
36 818 16510
37 830 17340
38 842 18182
39 855 19037
40 868 19905
41 881 20786
42 894 21680
43 907 22587
44 921 23508
45 935 24443
46 949 25402
47 963 26365
48 977 27342
49 992 28334
50 1007 29341
51 1022 30363
52 1037 31400
53 1053 32453
54 1069 33522
55 1085 34607
56 1101 35708A是序号 B是值 C是累计值例:
2 C = 1 B + 2 B
即 序号为2的C值 等于序号为1的B值加上序号为2的B值现在我只有C值 要求求出对应的A值 B值不用理。。 我数学不好。。找不到规律 请高人支招
如果C值对应A B值都能求出那就最好了。。谢谢各位~
0 20 20
1 26 46
2 34 80
3 44 124
4 57 181
5 74 255
6 96 351
7 125 476
8 163 639
9 212 851
10 233 1084
11 256 1340
12 282 1622
13 310 1932
14 341 2273
15 375 2648
16 413 3061
17 454 3515
18 499 4014
19 549 4563
20 565 5128
21 582 5710
22 599 6309
23 617 6926
24 636 7562
25 655 8217
26 675 8892
27 695 9587
28 716 10303
29 737 11040
30 748 11788
31 759 12547
32 770 13310
33 782 14092
34 794 14886
35 806 15692
36 818 16510
37 830 17340
38 842 18182
39 855 19037
40 868 19905
41 881 20786
42 894 21680
43 907 22587
44 921 23508
45 935 24443
46 949 25402
47 963 26365
48 977 27342
49 992 28334
50 1007 29341
51 1022 30363
52 1037 31400
53 1053 32453
54 1069 33522
55 1085 34607
56 1101 35708A是序号 B是值 C是累计值例:
2 C = 1 B + 2 B
即 序号为2的C值 等于序号为1的B值加上序号为2的B值现在我只有C值 要求求出对应的A值 B值不用理。。 我数学不好。。找不到规律 请高人支招
如果C值对应A B值都能求出那就最好了。。谢谢各位~
如果只有一个C值,B值序列必须给定,才有可能有解。
因此程序入口应该是一个B序列,一个C值,代码如下:
public class CountC {
// 入口参数: B序列,c值; 返回序列号
public static int getIndex(int[] B, int c) {
int sum = 0;
for (int i=0; i<B.length; i++) {
sum += B[i];
if (sum == c) return i;
}
return -1;
} // 测试
public static void main(String[] args) {
int[] B = {20,26,34,44,57,74,96,125,163,212,233,256,282,310,341,375}; //多的自己加
int c = 1622;
int index = getIndex(B, c);
if (index>=0) System.out.println(index + " " + B[index] + " " + c);
else System.out.println("Not found!");
}
}
B值只是帮助的 可用可不用~
2 C = 1 B + 2 B
即 序号为2的C值 等于序号为1的B值加上序号为2的B值lz好好看看你给的这个表达式,符合你给出的数据规律吗?
A B C
0 20 20
1 26 46
2 34 80应该是:2C = 1C + 2B 吧?
对啊 一直没仔细看~~那就简单啦~Cn = Cn-1 + Bn
Cn-1 = Cn-2 + Bn-1
..................
C2 = C1 + B2
C1 = C0(==0) + B1上面的式子全部相加,左右消去,可得Cn = B1 + B2 + ... + Bn所以这道题还是需要知道B序列,知道以后就循环int[] b = // 你的数据
int c = // 你的数据
for (int i = 0; i < b.length; i++) {
if (c == 0) {
System.out.println(i);
break;
} else if (c < 0) {
System.out.println("Error C!");
break;
} else {
c -= b[i];
}
}
a是等级
b是升级所需经验值
c是所有级数的总经验值另外我给出的表达式是没错的哦。。
2c = 1b + 2b
3c = 1b + 2b + 3b
……
但是现在不知道B。。只有 C 可否有办法推出A呢
不知道B,神仙都推不出,就拿你举的例子好了
0 20 20
1 26 46
2 34 80
3 44 124如果B值改一下
0 10 10
1 20 30
2 30 60
3 31 91
4 53 124
也是符合你的规则的给你个c=124,你能推出序号是3?4?
有无穷多解的东西,怎么推
为什么会不知道B?要么你给一套计算B的公式,要么就永远不可能算出C的等级
我是想表达 目前在有的信息只有C
要求的是A上面那些都是提供的信息 是自己搜集的
但是我数学不好= =没有找出ABC之间的关系要求的时候是只有C输入 要输出A
用于给你求出A B C的关系
然后在输入C时返回相应的A