写作业

今天上机考试,做了这道题,然后超时了。先上题目吧!

1很久很久以前,有个叫乌的国家。乌国的学生可以雇佣教师代写作业,他们自己则可以趁机去寻找各种美丽心情。

乌国规定:雇佣一个教授要5个乌国元,雇佣一个讲师要3个乌国元,雇佣三个助教需要1个乌国元。现要求用n个乌国元雇佣n个教师,问有多少种方案?

对于每种方案,要求拥有教授、讲师、助教三种老师都要有

Input

100

80

10

测试数据有多组,每组占一行,每行是一个正整数n

Output

3

2

0

每个测试案例输出一行:有多少种方案


以下第一个代码是我一直超时的代码,使用的三个for所以超时了。刻苦铭心啊。

#include <stdio.h>
int main(void)
{
    int n,m,sum=0,l,i,k;
    while (scanf("%d",&n)!=EOF)
    {
        for(i=1; i<=n/5; i++)
        {
            for(k=1; k<=n/3; k++)
            {
                for(l=1; l<n*3; l++)
                {
                    if((i*5+k*3+l/3==n)&&(i+k+l==n)&&(l%3==0))
                    {
                        sum++;
                    }
                }
            }
        }
        printf("%d\n",sum);
        sum=0;
    }
}
经过修改去了一个for循环即可ac,代码为:

#include <stdio.h>
int main(void)
{
    int n,m,sum=0,l,i,k;
    while (scanf("%d",&n)!=EOF)
    {
        for(i=1;i<=n/5;i++)
        {
            for(k=1;k<=n/3;k++)
            {
                l=n-i-k;
                if((i*5+k*3+l/3==n)&&(i+k+l==n)&&(l%3==0))
                {
                    sum++;
                }
            }
        }
        printf("%d\n",sum);
        sum=0;
    }
}



猜你喜欢

转载自blog.csdn.net/weixin_39915192/article/details/79037347