Skip to content

Latest commit

 

History

History
108 lines (100 loc) · 1.84 KB

杭电ACM刷题.md

File metadata and controls

108 lines (100 loc) · 1.84 KB

##1000:A+B问题

#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
	int a,b;
	while(scanf("%d%d",&a,&b)!=EOF){
		printf("a+b\n",sum);
	}
	return 0;
}

##1001:连续数求和

#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
	int a;
	while(scanf("%d",&a)!=EOF){
		int sum = 0;
		sum = (1+a) * a / 2; 
		printf("%d\n\n",sum);
	}
	return 0;
}

##1004 统计输入字符串次数最多 #include<stdio.h> #include<string.h> char a[1000][16]; int b[1000]; int main() { int n,max,i,j,m;

 while(scanf("%d",&n)!=EOF)
 { 
  getchar();    //吸收回车符。
  if(n==0)break;
  for(i=1;i<=n;i++)
  {
   b[i]=0;
   gets(a[i]);   //输入字符串
  }
   
  //统计第i个字符串在所有字符串中出现的次数,存在b[i]
  for(i=1;i<=n;i++)
  {
   for(j=1;j<=n;j++)
    if(strcmp(a[i],a[j])==0)   
     b[i]++;
   
  }
  m=1;
  max=b[1];
  //求出最大的字符串。
  for(i=2;i<=n;i++)
   if(max<b[i])
   {  m=i;max=b[i];}
  printf("%s\n",a[m]);
 }
return 0;
}

#1005 ###错误解法:使用递归 #include<stdio.h> #include<string.h> #include<math.h> int f(long n,int a,int b){ if(n == 1 || n == 2) return 1; else return (af(n-1,a,b)+bf(n-2,a,b))%7; } int main(){ int a,b,n; while(scanf("%d%d%ld",&a,&b,&n)!=EOF){ getchar(); if(a == 0 && b==0 &&n == 0) break; printf("%d\n",f(n,a,b)); } return 0; } ###正解,使用递推 int main()
{
int A,B,i;
long int n;
while(scanf("%d%d%ld",&A,&B,&n)!=EOF)
{
int a[50];
a[1]=1;
a[2]=1;
if((A+B+n)==0)break;
for(i=3;i<=48;i++)
{
a[i]=(Aa[i-1]+Ba[i-2])%7;
}
n=n%48;
a[0]=a[48];
printf("%d\n",a[n]);
}
return 0;
}