求一个小程序算法

  • m
    meizizi
    输入若干个数字,分别2个数相加,3个数相加,4个数相加,得出10,20,30.。。到100的整数,分别列出来相加的数和整数结果,

    这个用什么程序做简单,而且好用?

    加鸡骚谢谢
  • w
    wuhao0727
    简单好用啊,那直接写个html文件,
    用js算最简单省事,输入若干个数可以
    用个input框来用,号分隔数字就行了。
    算法就是穷举呗,弄几个for循环完事。

    用其他语言写其实也就是这么个意思,
    应该还是挺简单的,但我就是不写,哈哈
  • F
    FoxfoO
    怎么确保得到10、20、30……?
  • N
    NewRoaD
    嗯,确实简单,我也不说
  • z
    zo
    我有了个绝妙的算法,可惜这里太小写不下。。。
  • s
    stryker
    我的算法最简单,但是写出来后...

    您的帖子长度不符合要求。

    当前长度: 2 字节
    系统限制: 4 发送到 500000 字节

    没办法,发不了。
  • w
    winger
    看得不是很明白?

    是从你输入的数字里面,找出可以相加成10、20、30…… 这样的数字?
  • S
    Seiker
    Mark
  • z
    zhangjingy2008
    SQL
  • v
    voidstar
    楼主的意思理解不能
  • w
    wuhao0727
    闲着无聊,用java写了个,楼主有jre运行环境知道怎么运行,就运行看结果吧,输入2,3,4,5,6,8 然后按回车看结果。

    import java.io.*;
    public class Choose {
    int init[];
    int end[];
    int n;
    int m;
    BufferedReader in;
    int tempint=0;

    public Choose() {
    in=new BufferedReader(new InputStreamReader(System.in));
    getInput("Please enter number string like 2,3,5,7 : ");
    m=2;
    end=new int[m];
    choose1(0,0);
    m=3;
    end=new int[m];
    choose1(0,0);
    m=4;
    end=new int[m];
    choose1(0,0);
    }

    public static void main(String arf[]) {
    Choose demo=new Choose();

    }

    public void choose1(int k,int l) {
    tempint=0;
    if(l==m) {
    for(int i=0;i<m;i++){
    //System.out.print(end+" ");
    tempint=tempint+end;
    }
    if(tempint % 10 ==0) {
    for(int i=0;i<m;i++){
    if(i==m-1){
    System.out.print(end+"=");
    }else {
    System.out.print(end+"+");
    }
    }
    System.out.print(tempint);
    System.out.println();
    }

    }
    else if(n-k==m-l) {
    for(int i=0;i<m-l;i++){
    end[l+i]=init[k+i];
    }
    for(int i=0;i<m;i++){
    //System.out.print(end+" ");
    tempint=tempint+end;
    }
    if(tempint % 10 ==0) {
    for(int i=0;i<m;i++){
    if(i==m-1){
    System.out.print(end+"=");
    }else {
    System.out.print(end+"+");
    }
    }
    System.out.print(tempint);
    System.out.println();
    }

    }
    else {
    end[l]=init[k];
    choose1(k+1,l+1);
    choose1(k+1,l);
    }
    }

    public void getInput(String info) {
    String[] temp;
    System.out.print("\n"+info);
    try {
    temp=in.readLine().split(",");
    n = temp.length;
    if(n<4) {
    System.out.println("\nWrong!! enter at least 4 numbers like 2,3,5,6 !");
    getInput("Enter again : ");
    }
    init=new int[n];
    for(int i=0;i<n;i++) {
    init=Integer.parseInt(temp);
    }

    }
    catch(Exception e) {
    System.out.println("Wrong!! Input again!!");
    getInput(info);
    }

    }
    }
  • d
    dejisae
    顶LS。
    反正我觉得只给激骚没什么意思,所以我不做。
  • k
    karsus
    ……指数级的时间复杂度
  • z
    zhangjingy2008
    晕,这种简易版的背包算法用得着嘛。

    [本帖最后由 zhangjingy2008 于 2011-8-24 15:44 编辑]
  • m
    meizizi
    就是把输入的数字全部加一遍,得到的结果如果是10的倍数就显示出来,还要显示是哪些数加的