首页 > 代码库 > C语言例题系列-------第十天
C语言例题系列-------第十天
//19.100个学生一起买小吃,共花钱100元,其中每个大学生花5元,每个中学生花3元, //每3个小学生花1元,问大,中,小学生的人数分配共有多少种不同的解 //(去掉某类学生为零的解)? //这是我写的程序,答案是3种 /*#include<stdio.h> int main() { int i,j,k; int count=0; for(i=1;i<20;i++) { for(j=1;j<33;j++) { for(k=3;k<300;k+=3) { if(5*i+3*j+k/3==100&&i+j+k==100) { printf("大学生%d人,中学生%d人,小学生%d人",i,j,k); count++; printf("\n"); } } } } printf("一共有%d种\n",count); return 0; } */ //这是答案给的程序,答案是6种 #include<stdio.h> int main() { int a,b,c; for(a=1;a<=20;a++) for(b=1;b<=33;b++) { c=100-a-b; if((5*a+3*b+c/3)==100) printf("%d,%d,%d\n",a,b,c); } return 0; } //请认真比较这两种写法,
//20.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的最大值。 //这是我写的,答案是38 /*#include<stdio.h> int main() { int s[100]={0,1};//此处定义的数组是S[100],100是我假定的一个大小,我觉得,100以内肯定可以得出答案,自己体会 int i,sum=0; for(i=2;i<100;i++) {s[i]=s[i-1]+2*i-1; } for(i=1;i<100;i++) { sum+=s[i]; if(sum>=20000) {printf("N的最大值为%d\n",i-1); break; } } return 0; } */ //这是答案给的代码,用函数调用写的,答案也是38 #include<stdio.h> int func(int n) { int i,sum=0; for(i=1;i<=n;i++) sum=sum+2*i-1; return(sum); } int main() { int sum=0,i=1; while(sum<20000) { sum=sum+func(i); if(sum>=20000) break; i++; } printf("N的最大值为%d\n",i-1); return 0; }
本文出自 “鹏哥的博客” 博客,谢绝转载!
C语言例题系列-------第十天
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。