鸡兔同笼问题
代码一:
#include <iostream>
using namespace std;
int main()
{
int c,r,n,a,max,min;
cin>>n;//请输入测试数据的组数
for(int i=1;i<=n;i++)
{
cin>>a;
if(a%4==0)
{
min=a/4;//最少有几只动物
max=a/2;//最多有几只动物
}
else if(a%2==0&&a%4!=0)
{
max=a/2;//最多有几只动物
for(c=1;;c++)
{
if( (2*c+4*r)==a)
min=c+r;//计算最少有几只动物
else
continue;
}
}
else if(a%2!=0)
{
max=0;
min=0;
}
cout<<min<<" "<<max<<endl;
}
return 0;
}
代码二:
#include <stdio.h>
int main()
{
int n,a,n1,n2,i;
scanf("%d",&n); //输入测试数据的组数
for(i=1;i<=n;i++)
{
scanf("%d",&a); //输入脚的数目
if(a%4==0)
printf("%d %d",a/4,a/2);
else if (a%2==0)
printf("%d %d",a/4+1,a/2);
else
printf("0 0");
}
return 0;
}
校门外的树(直接模拟)
#include <stdio.h>
#include <string.h>
int main()
{
int L,M,a,b,cnt=0,i,j,k;
int T[10000];
while(scanf("%d %d",&L,&M)!=EOF)
{
memset(T,0,L);
for( i=1;i<=M;i++)
{
scanf("%d %d",&a,&b);
for( j=a;j<=b;j++)
T[j]=1;
}
for( k=0;k<=L;k++)
if(T[k]==0)
cnt++;
printf("%d",cnt);
return 0;
}
}
装箱问题
#include <stdio.h>
#include <string.h>
int main()
{
int a,b,c,d,e,f,n1,n2,n3,n;
while(scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f)!=EOF)
{
if(a==0&&b==0&&c==0&&d==0&&e==0&&f==0)
break;
int u[4]={0,5,3,1};
n1=f+e+d+(c+3)/4; //长宽>=3×3的产品所占用的箱子数目
n2=5*d+u[c%4]; //3×3箱子数目分别为4k,4k+1,4k+2,4k+3时所剩余的2×2空位
if(n2>=b) //如果空位比实际2×2箱子多
n=n1;
else
n=n1+(b-n2+8)/9;
n3=36*n-(36*f+25*e+16*d+9*c+4*b);
if(a<=n3)
printf("%d\n",n);
else
{
n+=((a-n3)+35)/36;
printf("%d\n",n);
}
}
return 0;
}