读不懂这个程序,请解释:(穷举法)找出N个自然数中R个数的组合,每三个数中,数不能相同,另外,如何两数组合的数,所包含的数字不同#include "stdio.h"main(){int i,j,k,r=3; for(i=5;i>=r,i--)for(j=i-1;j>=r-1;j--)
for(k=i-1;k>=r-2;k--)
if(i!=j&&i!=k&&j!=k&&i>j&&j>k)
printf("%3d%3d%3d\\n",i,j,k);}
此程序是求自然数12345的三个数的组合,每一组中的数彼此不相等,而且要按从大到小的顺序排列。比如,当第一个循环取5时;第二个循环取4;第三个循环可分别取3,2,1.那么可得到三组符合要求的数:543542541当第一个循环取4时;第二个循环可取3; (如果取4,会与第一个循环的4相等,这会由if条件句限制掉)第三个循环可分别取2,1.那么可得到二组符合要求的数:432431
提问者对答案的评价:
好象还有个321吧 |