计概杂烩2016
2016期末
三角形判断
#include <stdio.h>
/* C语言初始模板程序 */
int main(void) {
int a,b,c;scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a) printf("yes\n");
else printf("no\n");
return 0;
}
猴子吃桃
#include <stdio.h>
/* C语言初始模板程序 */
int main(void) {
int m,e,d,n;scanf("%d",&n);
while(n--)
{
scanf("%d%d%d",&m,&e,&d);
printf("%d\n",m-d*e>0?m-d*e:0);
}
return 0;
}
学英语字母
#include <stdio.h>
/* C语言初始模板程序 */
int main(void) {
int n;scanf("%d\n",&n);
for(int i=1;i<=n;++i)
{
char c;scanf("%c\n",&c);
if(c=='z'||c=='Z')
printf(" \n");
else printf("%c\n",c+1);
}
return 0;
}
防雾霾
#include <stdio.h>
/* C语言初始模板程序 */
int main(void) {
int n,m,cnt=0;scanf("%d%d",&n,&m);
int now=m;
for(int i=1;i<=n;++i){
if(now<=0) ++cnt,now=m;
int x;scanf("%d",&x);
now-=x;
}
printf("%d\n",cnt+1);
return 0;
}
找到不一样的数
#include <stdio.h>
int a[200];
int main(void) {
int n;scanf("%d",&n);
for(int i=1;i<=n;++i)
{
int x;scanf("%d",&x);
++a[x];
}
for(int i=1;i<=100;++i)
if(a[i]%2)
printf("%d\n",i);
return 0;
}
使用桶排序的思想用下标解决问题。
集体照
#include <stdio.h>
int n,a[200];
int main(void) {
while(1)
{
scanf("%d",&n);if(n==0) break;
for(int i=1;i<=n;++i) scanf("%d",&a[i]);
for(int i=1;i<n;++i)
for(int j=i+1;j<=n;++j)
if(a[i]>a[j])
{int tmp=a[i];a[i]=a[j];a[j]=tmp;}
printf("%d\n",a[n/2+1]);
}
return 0;
}
密码风云
#include <stdio.h>
int a[20],b[20];
int main(void) {
for(int i=1;i<=10;++i) scanf("%d",&a[i]);
for(int i=1;i<=10;++i) scanf("%d",&b[i]);
for(int i=1;i<10;++i) printf("%d ",(a[i]+5)%10);
printf("%d\n",(a[10]+5)%10);
for(int i=1;i<10;++i) printf("%d ",(b[i]+5)%10);
printf("%d\n",(b[10]+5)%10);
return 0;
}
计数问题
#include <stdio.h>
int a[20];
int main(void) {
int n,x;scanf("%d%d",&n,&x);
for(int i=1;i<=n;++i)
{
int i1=i;
while(i1)
{
++a[i1%10];i1/=10;
}
}
printf("%d\n",a[x]);
return 0;
}
同样的用下标解决问题的思想
点赞狂
#include <stdio.h>
/* C语言初始模板程序 */
int main(void) {
int t;scanf("%d",&t);
while(t--){
int n,m,ans=0;scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i)
{
int cnt=0;
for(int j=1;j<=m;++j)
{
int x;scanf("%d",&x);cnt+=x;
}
if(cnt>=(m+1)/2) ++ans;
}
printf("%d\n",ans);
}
return 0;
}
终极大奖
#include <stdio.h>
int a[200],b[200],c[200];
int main(void) {
while(1)
{
int n,m,now=0;scanf("%d%d",&n,&m);int n1=n;
if(n==0&&m==0) break;
for(int i=1;i<=n;++i) scanf("%d",&a[i]),b[i]=i+1,c[i]=i-1;
b[0]=b[n]=1;c[1]=n;
while(n>1)
{
for(int i=1;i<=m;++i) now=b[now];
--a[now];
if(a[now]==0)
{
b[c[now]]=b[now];
c[b[now]]=c[now];
--n;
}
}
for(int i=1;i<=n1;++i)
{
if(a[i])
printf("%d\n",i);
}
}
return 0;
}
约瑟夫变异了,不能递推,只能模拟了
煎鸡排
#include <stdio.h>
int f(int x,int y)
{
double n1=1.0*x*2/y;
int n2=n1;
if(n2-1.0*n1==0)
return n2;
else return n2+1;
}
int main(void) {
int n,m;scanf("%d%d",&n,&m);
if(n==1) printf("2\n");
else printf("%d\n",f(n,m));
return 0;
}
脑筋急转弯题