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值都能求出那就最好了。。谢谢各位~

解决方案 »

  1.   

    你的A和B就是目前这样的,还是可能变化?如果就是目前这样好说,如果变化的,那就没法做。你这个B没有什么规律可言............
      

  2.   

    只有C值什么意思?只有一个C值还是只有一个C值的完整序列?
      

  3.   

    题目的意思是已知C序列求A B序列,还是知道C中的一个值,求其对应的A B值?
      

  4.   

    分析楼主的意思,不可能有个C序列,否则给C序列排序,序号就知道了
    如果只有一个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!");
    }
    }
      

  5.   

    只有一个C值。。 不是有整个C序列~比如我知道C值是35708 但是不知道对应的A值是56  我现在要把56求出来~
    B值只是帮助的 可用可不用~
      

  6.   

    只有1个C值没有B?这是不可能求出来的吧,你又没有说B是什么规律,怎么可能做出来
      

  7.   

    例:
    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 吧?
      

  8.   


    对啊  一直没仔细看~~那就简单啦~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];
        }
    }
      

  9.   

    序列不是random的
    a是等级
    b是升级所需经验值
    c是所有级数的总经验值另外我给出的表达式是没错的哦。。
    2c = 1b + 2b
    3c = 1b + 2b + 3b
    ……
    但是现在不知道B。。只有 C 可否有办法推出A呢 
      

  10.   


    不知道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?
    有无穷多解的东西,怎么推
      

  11.   

    如果B就是这个规律,那么就通过它来计算C,直到C的值与你要求的相等就行了。
      

  12.   


    为什么会不知道B?要么你给一套计算B的公式,要么就永远不可能算出C的等级
      

  13.   

    额 不好意思表达错误
    我是想表达 目前在有的信息只有C
    要求的是A上面那些都是提供的信息 是自己搜集的
    但是我数学不好= =没有找出ABC之间的关系要求的时候是只有C输入 要输出A
      

  14.   

    是这样的、、就是现在给了 A B C的数据
    用于给你求出A B C的关系
    然后在输入C时返回相应的A