某水池有一条进水管和一条出水管,要灌满一池水,单开进水管为5小时。排光一池水,单开排水管需3小时,现在池内有半池水,如果按进水,排水,进水,排水,......的顺序轮流各开一个小时,问几小时后,水池的水刚好排完?
一个分数,分子与分母之和是100,如果分子加23,分母加32,新的分数约分后是2/3,那么原来的分数是?
2得30次方/3的20次方大于1还是小于1?
1. #include<stdio.h>
void main( ) { int n,a[5],s,i,flag,cnt=0; for(n=10000;n<100000;n++) { a[0]=n/10000; a[1]=n%10000/1000; a[2]=n%1000/100; a[3]=n%100/10; a[4]=n%10; s=0; for(i=0;i<5;i++) s+=a[i]; if(s%3==0) { flag=0; for(i=0;i<5;i++) if(a[i]==6) { flag=1; break; } if(flag==1) cnt++; } } printf("Total Number:%d\n",cnt); } 编译结果为: Total Number:12504 不知对否?
2. #include<stdio.h>
#define TOL 30/*设池中总的有TOL升水*/
#define IN 5/*进水用IN小时*/ #define OUT 3/*出水用OUT小时*/ #define NOW 15/*开始池中有NOW升水,后进水,排水各一小时*/
void main( ) { int n,time=0; n=NOW; while(n>=0) { n+=TOL/IN; n-=TOL/OUT; time+=2; } printf("经过%d个小时池中无水.\n",time);/*这里之取整数*/ } 编译结果为: 经过8个小时池中无水. 如要准确时间,自己可另行编程。
3. #include<stdio.h>
void main( ) { int denominator,numerator;/*分母,分子*/ for(denominator=1;denominator<100;denominator++) { numerator=100-denominator; if( (numerator+23)*3==(denominator+32)*2) printf("该分数为:%d/%d\n",numerator,denominator); /*可加上break语句*/ } } 编译结果为: 该分数为:39/61
4. #include<stdio.h>
void main( ) { int i,j; double divider=1; for(i=1;i<=20;i++) divider*=(2.0/3); for(i=1;i<=10;i++) divider*=(double)2; if(divider<1) printf("2^30/3^20<1\n"); else if(divider==1) printf("2^30/3^20=1\n"); else printf("2^30/3^20>1\n"); } 编译结果为: 2^30/3^20<1 其实2^30/3^20=0.307946够小的了。