有5个数,每个数都是1-9之间,他们相加等于30
求:1、有多少种组合?2、具体是什么?

解决方案 »

  1.   

    最大数字9,数据不算大,5次循环就行:var
      k,k1,k2,k3,k4,k5:Integer;ListBox1.Items.Clear;
    ListBox1.Items.Add('1..9任取5个数之和等于30组合如下:');
    For k1:= 1 To 9 do
       For k2:= k1+1 To 9 do
          For k3:= k2+1 To 9 do
            For k4:= k3+1 To 9 do
              For k5:= k4+1 To 9 do
                If (k1 + k2 + k3 + k4 + k5) = 30 Then
                begin
                  ListBox1.Items.Add(intTostr(k1) +' '+ intTostr(k2) +' '+ intTostr(k3) +' '+ intTostr(k4)+' '+ intTostr(k5));
                  inc(k);
                end;
     ListBox1.Items.Add('共 '+intTostr(k)+' 个组合');