数学基础程序员互联网科技

小朋友学奥数(7):三个自然数之和为8

2017-10-24  本文已影响62人  海天一树X

题目:

老师要求每个同学写出3个自然数,并且要求这3个数的和是8.如果两个同学写出的3个自然数相同,只是顺序不一样,就算是同一种写法.试问:同学们最多能给出多少种不同的写法?

数学解法:

这题跟上两题思路略有不同。

自然数1 自然数2 自然数3
0 0 8
0 1 7
0 2 6
0 3 5
0 4 4
1 1 6
1 2 5
1 3 4
2 2 4
2 3 3

注意上面的枚举规律:
第一列按从小到大的顺序;
第二列大于等于第一列,第三列大于等于第二列。否则立马出现重复。

答:10种

编程解法:

#include <stdio.h>
 
int main ()
{
    int count = 0;  // 存放可能的情况
    // i用来枚举第一个数的取值情况
    for(int i = 0; i <= 8; i++)
    {
        // j用来枚举第二个数的取值情况
        for(int j = i; j <= 8; j++)
        {
            // k用来枚举第三个数的取值情况
            for(int k = j; k <= 8; k++)
            {
                if(8 == i + j + k) 
                {
                    printf("%d,%d,%d\n", i, j, k);
                    count++;
                }
            }
        }
    }
    
    printf("共有%d种可能\n", count);
    
    return 0;
}

运行结果:

0,0,8
0,1,7
0,2,6
0,3,5
0,4,4
1,1,6
1,2,5
1,3,4
2,2,4
2,3,3
共有10种可能



更多内容请关注微信公众号


wchat.jpg
上一篇下一篇

猜你喜欢

热点阅读