printf("%d\n",M(m+1,2));这里有个小错误 还是你想M(m+M(1,2) 或是该成printf("%d\n",M((m+1),2));的话 首先计算m=1 第一个if 和第二个if都不满足条件 printf 4,m=2 continue 回到循环处,继续m+1 m=3时 跳过两个if执行printf 8 同理直到m=6以后就没有输出了 所以结果为4 8 12.
357
第一个判断是奇数 往下走,偶数跳出本次循环,继续M+1 到循环体
第二个是判断 m>5时 跳出循环,程序结束
m=1 时 M(1+1,2)=1+1*2=3
m=3 M(3+1,2)=3+1*2=5
m=5 M(5+1,2)=5+1*2=7
结果为 3 5 7
for(m=1;m<10;m++)
{if(m%2==0)
continue; /*遇到2被整除则跳出本次循环*/
if(m>5)
break; /*大于5直接退出循环*/
printf(“%d”,M(m+1,2)); /*符合条件的就剩下1 3 5,代入x*y就行了*/
}
神马真相 正解!
3,5,7结果!!!
结果为 4 8 12