专题三 – while 循环结构设计 (12/6+6)
基础 1010 1012 1016 1209 1235 2543 //6
拓展 1442 2252 2555 2562 2742 2743 //6
[1012]???
wrong
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a,&b)!=EOF&&(a!=0&&b!=0))
printf("%d\n",a+b);
return 0;
}
correct
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a,&b)!=EOF)
{
if(a==0&&b==0)break;
printf("%d\n",a+b);
}
}
【2543】
#include<stdio.h>
int main()
{
int i,n,b;
while(scanf("%d",&n)!=EOF)
{
printf("%d\n",n/5+n/6+n/8-n/30-n/24-n/40+n/120);
/*这个问题用容斥原理来做
1000中被5整除的有200个
被6整除的有166
被8整除的有125个
既被5整除又被6整除
既被5整除又被8整除
既被6整除又被8整除 (不是6*8=48
被5,6,8整除*/
}
}
容斥原理:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。
如果被计数的事物有A、B、C三类,那么,A类和B类和C类元素个数总和= A类元素个数+ B类元素个数+C类元素个数—既是A类又是B类的元素个数—既是A类又是C类的元素个数—既是B类又是C类的元素个数+既是A类又是B类而且是C类的元素个数。
【1442】
#include<stdio.h>
int main()
{
int n,a,b,c,d,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %d %d",&a,&b,&c);
d=(a+b+c)/3;
if((a>d&&b>d)||(b>d&&c>d)||(a>d&&c>d))
printf("Yes\n");
else printf("No\n");
}
return 0;
}
【2562】
#include <stdio.h>
int main(){int a1,b1,c1,a2,b2,c2,t; while((scanf("%d%d%d%d%d%d",&a1,&b1,&c1,&a2,&b2,&c2))==6)
{
if(a1>b1){t=a1;a1=b1;b1=t;}
if(a1>c1){t=a1;a1=c1;c1=t;}
if(b1>c1){t=b1;b1=c1;c1=t;}
if(a2>b2){t=a2;a2=b2;b2=t;}
if(a2>c2){t=a2;a2=c2;c2=t;}
if(b2>c2){t=b2;b2=c2;c2=t;}
printf((c1>=a1+b1||a1*b2-a2*b1||b1*c2-b2*c1)?"NO\n":"YES\n");
}
return 0;
}