目录
1.质数的和与积
注意:C语言没有bool类型
#include <stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int judge(int x){
if(x==2) return 0;
for(int i=2;i<=sqrt(x);i++){
if(x%i==0)
return 0;
}
return 1;
}
int main(){
int s;
scanf("%d",&s);
for(int i=s/2;i>=2;i--){
if(judge(i)&&judge(s-i)){
printf("%d",i*(s-i));
break;
}
}
return 0;
}
2.斐波那契数列数列
输出第几项是什么
#include <stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int main(){
int s;
scanf("%d",&s);
int t1=0,t2=1,t;
if(s==1){
t=0;
printf("%d",t);
return 0;}
if(s==2)
{
t=1;
printf("%d",t);
return 0;
}
for(int i=3;i<=s;i++){
t=t1+t2;
t1=t2;
t2=t;
}
printf("%d",t);
return 0;
}
3.求f(x,n)
#include <stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
double fun(double x,double n){
if(n==1)
return x/(1+x);
else
return x/(n+fun(x,n-1));
}
int main(){
double x,n;
scanf("%lf%lf",&x,&n);
double res=fun(x,n);
printf("%.2lf\n",res);
return 0;
}
4.计算2的N次方
当N=100时,2的N次方是一个很大的数,超出了一个长整数的表数范围。因此,为了保存2的N次方,可以定义一个数组int a[35];,每个数组元素a[i]保存结果整数的1位数,例如,保存整数1024时,a[0]=4,a[1]=2,a[2]=0,a[3]=1,并记整数的位数len=4。
这样一个整数乘以2,可以将每个数组元素乘以2,同时进行进位处理即可
参考:C语言程序设计100例之(66):计算2的N次方 - aTeacher - 博客园
#include <stdio.h>
#include <string.h>
int main()
{
int n;
scanf("%d",&n);
int a[35];
memset(a,0,sizeof(a));
a[1]=1;
int i,j,len=1;
for(i=1;i<=n;i++)
{
int cf=0;
for (j=1;j<=len;j++)
{
a[j]=a[j]*2+cf;
cf=a[j]/10;
a[j]=a[j]%10;
}
while (cf!=0)
{
a[++len]=cf%10;
cf/=10;
}
}
for (i=len;i>=1;i--)
printf("%d",a[i]);
printf("\n");
return 0;
}
参考:百练 2809:计算2的N次方_wlchn的博客-CSDN博客
#include <stdio.h>
int main(){
int n,i,j;
int a[100]={2};
scanf("%d",&n);
for(i=1;i<n;i++){
for(j=0;j<100;j++)
a[j]=a[j]*2;
for(j=0;j<99;j++){
a[j+1]=a[j+1]+a[j]/10;
a[j]=a[j]%10;
}
}
for(j=99;a[j]==0;j--);
for(;j>=0;j--)
printf("%d",a[j]);
return 0;
}