第1关:求和
#include<stdio.h>
//编写函数
/*********Begin*********/
int sum(int n){
int s;
s=0;
for(int i=1;i<=n;i++)
s+=i;
return s;
}
/*********End**********/
int main(void)
{
/*********Begin*********/
int n,s;
scanf("%d",&n);
s=sum(n);
printf("%d\n",s);
/*********End**********/
return 0;
}
第2关:回文数计算
#include<stdio.h>
int solve(int n){
/*********Begin*********/
int i,j=0;
i=n;
while(i){
j=j*10+i%10;
i/=10;
}
if(j==n) return 1;
else return 0;
/*********End**********/
}
int main(void)
{
int i;
for(i=200;i<=3000;i++)
if(solve(i)) printf("%d\n",i);
return 0;
}
第3关: 编写函数求表达式的值
#include<stdio.h>
//编写题目要求的函数
/*********Begin*********/
void s()
{
double i,a,b,c,n,s=0;//这里要用双精度类型,用float后几位数字和答案不符合
scanf("%lf",&n);
a=1,b=1,s=0;
for(i=1;i<=n;i++)
{
a=a*i;
b=b*(2*i+1);
c=a/b;
s=c+s;
}
s=s+1;//这里+1的原因是上面的式子没有s的一项,是直接从第二项数开始的,所以+1
printf("%.10lf",s);
}
/*********End**********/
int main(void)
{
/*********Begin*********/
s();
/*********End**********/
return 0;
}
第4关:阶乘数列
#include <stdio.h>
#include <math.h>
long long factorial (int b )
{
int n,i;
long long factorial=1;
for(i=2; i<=b; i++)
{
factorial=factorial*i;
}
return factorial;
}
int main()
{ int n,j;
long long sn=0;
scanf("%d",&n);
for (j=1; j<=n; j++) //主要注意溢出
{
sn+=factorial(j);
}
printf("%lld",sn); //long long 需要%lld; long 需要%ld
return 0;
}
第5关:亲密数
#include <stdio.h>
int fc(int a) //求自然数的因子之和
{
int i, sum = 0;
for (i = 1; i < a; i++)
{
if (a % i == 0)
{
sum += i;
}
}
return sum;
}
int main()
{
int a, b;
for (a = 2; a <= 3000; a++) //输出3000以下的亲密数
{
b = fc(a); //假设a的全部因子都等于b;
if (fc(b) == a && a != b && a < b) //整数B的全部因子(包括1,不包括B本身)之和等于A,且a<b&&a!=b
{
printf("(%d,%d)", a, b);
}
}
return 0;
}
第6关:公约公倍数
#include <stdio.h>
long long int yue(long long int m,long long int n)
{
int i;
for(i=n;i>=1;i--)
if(m%i==0&&n%i==0)
break;
return i;
}
long long int bei(long long int m,long long int n)
{
long long int i,j;
for(i=n;i>=1;i--)
if(m%i==0&&n%i==0)
break;
j=m*n/i;
return j;
}
long long int main()
{
long long int d,e,t,m,n;
scanf("%lld %lld",&m,&n);
if(m<n)
{t=m;m=n;n=t;}
if(n<0||m<0)
printf("Input Error");
else
{
d=yue(m,n);
e=bei(m,n);
printf("%lld %lld",d,e);
}
return 0;
}