【C语言代码】堵车问题
【题目】
假设在道路上只有三种车,小车长1米,中车长2米,大车长3米,同时假设堵车总长度为n米,请设计程序,计算出三种车的数量的可能的总数量,例如,当输入是 3时,输出应该为 2,因为所有的方案是“小车3 个”、“小车1个,中车1个”,共2种
【Input】
一个整数n,代表道路堵的长度
【Output】
所有可能的总数量
【解题思路】
暴力
三层for循环计算符合条件的组合数量,注意效率优化
直接上代码!
【Code】
#include<stdio.h>
int main()
{int n,count = 0;int small,middle,big;scanf("%d",&n);for(small = 0;small <= n;small ++){for(middle = 0;middle <= (n/2);middle ++) //长度为2的车辆,最多排(n/2)辆 {for(big = 0;big <= (n/3);big ++) // 长度为3的车辆,最多排(n/3)辆 {if(small + 2 * middle + 3 * big == n) {count ++;}}}} printf("%d",count);return 0;}
【Input Example】
5