1、include ltstdioh void delectint n,int *p int i,j=0,k,an,bnint temp10=1,2,3,4,5,6,7,8,9,10fori=0iltni++ai=*p+ifori=0iltni++forj=0jlt10;int fint m,int n ifm==0n==0return 1return m+n*m+n1*fm1,n1m*n;这个程序是求n的月之数,程序直接给出答案是1ltltn1+n1*1ltltn2C语言里1ltltx等于2的x次方,所以这个答案很容易看出来其实是2^n1+n1*2^n2,^是乘方运算下面给出上式的推导过程。
2、int functionint n,int m int i, ret = 1fori=0iltmi++ret *= nireturn ret void mainvoid int n = 15, m =5int retret = function15,5 function5,5printfquot%d\。
3、n1且rlt=n\nquotscanfquot%d%dquot,n,rprintfquot组合数=%fquot,zuheshu=jiechengnjiechengr*jiechengnr 这是在VC++环境中编的,如果在tuboC中运行,只需将头文件更改下就可以了;includeltstdioh void main long n,m,i,a=1scanfquot%ld %ldquot,n,mfori=ninmia=a*iprintfquot%ld\nquot,a 注A10,3=10*9*8=720;n = 5 时,有 4 种结果2,1,2 1,3,1 2,3 3,2include ltstdiohint ans,pvoid dfsconst int i,const int use,const int nifi==nans+=1return int jforj=1jlt=3j。
4、我承认我错了,是120种 我这种方法还算巧妙吧include ltstdioh int main int i,j,kint sum = 0fori = 9 i=2iforj = i1 j =1 jfork = j1 k=0kprintfquot;3 * nr = 1for i = 1 i lt= 9 ++ir *= aiif r == 1printfquot%d,%d,%d\nquot, n, 2 * n, 3 * nreturn 0结果192,384,576 219,438,657 273,546,819 327,654,981;includeltstdioh includeltstdlibh include int isLegalint std,int a int sum=0int i,jfori=0ilt6i++forj=0jlt6j++ ifai==stdjsum++ ifsum3 return 0else;For i = 0 To 5 如已有a0 = 9 a1 = 5 a2 = 1 a3 = 7 a4 = 0 a5 = 3 因为数组中数值不重复,那么进行全排列即可For j = 0 To 5 For k = 0 To 5 Text1Text = Text。
5、String tree = new String1010 建立了数组,每个element的值是nullelementmlength,elementm 是一个值为null的String,对null求length,就是NullPointerException先用循环给你的tree付值就可以;1求排列组合没有简单方法方法只有一个,枚举有几个位置需要列举,就需要几个循环如果循环数量太多,可以用函数递归来枚举2例程includeltstdioh int main int a4=1,3,4,7 第一;include ltstdlibh include ltstdioh include ltstdlibh include ltstdioh include *用到了time函数,所以要有这个头文件* define MAX 6 int main void int numberMAX = 0int i,jsrandun;printfquot总共有%d个满足要求的组合\nquot,jreturn 0 其中宏定义#define AIM后面的数字为需要的总和 本代码选出的组合中数字不能重复 和为39的组合运行结果如下。