循环的嵌套
内循环 外循环
外循环每成功执行一次,内循环整个执行一遍(一直到循环条件不成立)
外循环循环了m次,内循环每次循环n次,最内部的语句执行m*n次
for(1;2;3)
for(4;5;6)
A;
B;
问题:求2~100中所有素数的和
拓展1:统计2~500中所有完数有多少个?
问题:有1,2,3,4共4个整数,能组成多少个互不相同且无重复数字的三位数。
问题:用1,2,3,4,...9组成3个三位数abc,def,ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3,
以满足条件的三位数为一组,找到所有满足这些条件的三位数(以组为单位,每组占一行)
分析:
int abc,def,ghi;
int a,b,c,d,e,f,g,h,i;
abc:def:ghi=1:2:3
得到一些信息:abc [123,333]
for(abc=123;abc<=333;abc++)
{
def=abc*2;
ghi=abc*3;
//分别求出abc,def,ghi三个整数的各个位
a=abc/100; b=abc/10%10; c=abc%10;
d=def/100;e=def/10%10;f=def%10;
g=ghi/100;h=ghi/10%10;i=ghi%10;
//判断a,b,c,d,e,f,g,h,i这9个变量的值为1~9中某一个,且互不相等,如是,则输出这三个3位数
(意味着:1*2*3*4*5*6*7*8*9=362880 ; 1+2+3+4+5+6+7+8+9=45)
if ((a*b*c*d*e*f*g*h*i==362880)&&(a+b+c+d+e+f+g+h+i==45))
printf("%d,%d,%d\n",abc,def,ghi);
}
[1]
[2]
[3]
[4]
下一页