文档介绍:Tubro C programming for HNCRE 2005
1题:100个学生一起买小吃,共花钱100元,其中每个大学生花5元,每个中学生花3元,每3个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生为0的解)?
程序:
main( )
{ int a,b,c;
for(a=1;a<=20;a++)
for(b=1;b<=33;b++)
{ c=100—a—b;
if((20*a+33*b+c/3)= =100)
printf(“%d,%d,%d\n”,a,b,c);
}
getch( );
}
答案:6种:
3,20,77;
4,18,78;
8,11,81;
11,6,83;
12,4,84.
2题:50个小学生按1至50序号顺时针围成一圈,做出局游戏,老师站在圈外逆时针从最后一个人数起,每数到5时,这人从圈里出来,继续数1,2,3,4,5,数到第5个学生时,他就出局,已出局的位置不再参加记数,直至所有的学生出局为止,问最后一个出局的学生序号是多少号?
程序:main()
{
int i,k,sum,l,t=0;
int a[50];
clrscr();
for(i=1;i<=50;i++)
a[i]=1;
for(k=1,sum=0,l=0;k<=50;k++)
{
for(i=50;i>0;i--)
{
sum+=a[i];
if(sum==5) {sum=0;l++;a[i]=0;}
if(l==49) {t=1;break;}
}
if(t==1)break;
}
for(i=1;i<=50;i++){
if(a[i]==1) printf("%d",i);}
getch();
}
答案:32号
3题:50元兑换成5元,2元和1元的计算方法有多少种?
程序:
main( )
{ int x,f,t,n;
x=0;f=0;
while(f<=10)
{t=0;while (t<=25)
{n=50—f*5—T*2;
if(n>=o) x++;
t++:}
f++;}
printf(“%d”,x);
}
答案:146
4题:
A、B、C三个正整数,当满足1/A*A+1/B*B=1/C*C关系时,称为倒勾股数。求职130〈 A+B+C〈150的倒勾股数有多少组。
程序:
main()
{
int a,b,c,k;
int count=0;
clrscr();
for(a=1;a<150;a++)
for(b=1;b<150;b++)
for(c=1;c<150;c++)
{
k=a+b+c;
if((float)1/(a*a)+(float)1/(b*b)==(float)1/(c*c))
if(k>130)
if(k<150)
count++;
}
printf("%d",count);
getch();
}
答案:0
题目:
5题:
S1=1,S2=1+3,S3=1+3+5,S4=1+3+5+7,……,SN=1+3+5+7+……+(2N-1),N为正整数。编程求S1+S2+S3+S4+……+SN的值〈 20000时的N的最大值。
程序:
func(int n)
{
int i,sum;
sum=0;
for(i=1;i<=n;i++)
sum=sum+2*i-1;
return(sum);
}
main()
{
int sum,a,b,c,i;
i=1;
sum=0;
clrscr();
while(sum<20000)
{
sum=sum+func(i);
if(sum>20000)
break;
i++;
}
printf("%d",i-1);
getch();
}
答案:38
题目:
6题:自然数对是指两个自然数的和与差都是平方数,如果8和17的和8+17=25与其差17-8=9都是平方数,则称8和17是自然数对(8,17)。假定(A,B)与(B,A)是同一个自然数对且假定A 〉=B,求所有小于或等于100(即:A〈=100,B〈=100〉的自然数对中B之和。
程序:
main()
{
int a,b,i,j;
int c=0;
clrscr();
for(a=1;a<=100;a++)
for(b=1;b<=100;b++)
{
if((i*i)= =(a+b)&&(j*j)= =(a-b)&&(a>=b))
c=c+b;
}
pr