#include<stdio.h>
int main()
{
int m,n,i,s1,s2;scanf("%d",&m);
while(m--)
{scanf("%d",&n);
for(i=3,s1=s2=1;i<=n;i++)
{s1=s1+s2;s2=s1-s2;}
printf("%d\n",s1);
}
return 0;
}
密码
#include<stdio.h>
#include<string.h>
int main()
{
int M,i,t,a,b,c,d,sum;
char s[60];
while(scanf("%d",&M)!=EOF)
{
while(M--)
{
scanf("%s",s);
t=strlen(s);
if(t<8||t>16)
{
printf("NO\n");
continue;
}
a=b=c=d=sum=0;
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='A'&&s[i]<='Z')a=1;
else if(s[i]>='a'&&s[i]<='z')b=1;
else if(s[i]>='0'&&s[i]<='9')c=1;
else if(s[i]=='~'||s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$'||s[i]=='%'||s[i]=='^')d=1;
}
sum=a+b+c+d;
if(sum>=3)
printf("YES\n");
else
printf("NO\n");
}
}
return 0;
}
/*//二进制数中1的个数
#include<stdio.h>
main()
{
int N,M,t,s;
scanf("%d",&M);
while(M--)
{
scanf("%d",&N);
s=0;
while(N!=0)
{
t=N%2;
N=N/2;
if(t==1)
s++;
}
printf("%d\n",s);
}
return 0;
}*/
/*#include<stdio.h>//计算进位个数
int main()
{
int a,b,c,s;
while(scanf("%d%d",&a,&b)!=EOF&&a!=0&&b!=0)
{
s=0;
c=a+b;
if((a/10%10+b/10%10)%10!=c/10%10)
s++;
if((a/100+b/100)%10!=c/100)
s++;
if(c/1000!=0)
s++;
printf("%d\n",s);
}
return 0;
}
一维数组排序
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[10];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
for(int i=0;i<n;i++)
{
printf("%d",a[i]);
if(i!=n-1)
printf(" ");
else
printf("\n");
}
return 0;
}
1722蛋糕
#include<stdio.h>
int max(int a,int b)
{
if(a%b==0)
return b;
else
return max(b,(a%b));
}
int main()
{
int a,b,t;
while(scanf("%d%d",&a,&b)!=EOF)
{
t=max(a,b);
printf("%d\n",a+b-t);人数和减去最大公约数
}
return 0;
}
分拆素数
#include<stdio.h>
#include<math.h>
int su[1000000+11]={1,1};
int main()
{
int i,j,n;
for (int i = 2 ; i <= 1000000 ; i++)素数打表
{
if (su[i]==1)
continue;
for (int j = i*2;j<=1000000;j+=i)
su[j] = 1;
}
while(scanf("%d",&n)!=EOF&&n!=0)
{
int t=0,m;
for(i=3;i<n/2;i+=2)
{ 素数一定是奇数
if(su[i]==0&&su[n-i]==0)
t++;
}
printf("%d\n",t);
}
return 0;
}
1222 Wolf and Rabbit
#include<cstdio>
int max(int a,int b)
{
if(b%a==0)
return a;
else
return max(b%a,a);
}
int main()判断两个数是否互质
{
int n,a,b;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&a,&b);
if(max(a,b)==1)
printf("NO\n");
else
printf("YES\n");
}
return 0;
}
4548美素数
#include<cstdio>
int su[1000000+11]={1,1};
int a[1000000+11];
void su1()
{
int i,j;
for(i=2;i<=1000000;i++)
{
if(su[i]==1)
continue;
for(j=2*i;j<=1000000;j+=i)
su[j]=1;
}
}
void su2()素数打表
{
int t,i,n;
su1();
for(i=1;i<=1000000;i++)
{
n=i;
int sum=0;
while(n)
{
sum+=n%10;
n=n/10;
}
if(su[i]==0&&su[sum]==0)
a[i]=a[i-1]+1;
else
a[i]=a[i-1];
}
a[i]=a[i-1];
}
int main()
{
int c,b,n;
scanf("%d",&n);
su2();
int k=1;
while(n--)
{
scanf("%d%d",&c,&b);
printf("Case #%d: %d\n",k++,a[b]-a[c-1]);
}
return 0;
}
int su[1000000+11]={1,1};
int a[1000000+11];
void su1()
{
int i,j;
for(i=2;i<=1000000;i++)
{
if(su[i]==1)
continue;
for(j=2*i;j<=1000000;j+=i)
su[j]=1;
}
}
void su2()素数打表
{
int t,i,n;
su1();
for(i=1;i<=1000000;i++)
{
n=i;
int sum=0;
while(n)
{
sum+=n%10;
n=n/10;
}
if(su[i]==0&&su[sum]==0)
a[i]=a[i-1]+1;
else
a[i]=a[i-1];
}
a[i]=a[i-1];
}
int main()
{
int c,b,n;
scanf("%d",&n);
su2();
int k=1;
while(n--)
{
scanf("%d%d",&c,&b);
printf("Case #%d: %d\n",k++,a[b]-a[c-1]);
}
return 0;
}
时间超时#include<cstdio>美素数