/*求最大公约数和最小公倍数:
#include<stdio.h>
void s( int a,int b)
{
int max=0;
int min=0;
if(a%b==0)
{
max = b;
min = a;
}
else if(b % a==0)
{
max=a;
min=b;
}
else
{
for(int i = 2;i <= (a > b ? b : a );i++)
{
if(a % i == 0 && b % i == 0)
{
max=i;
}
}
min=a*b/max;
}
printf("%d\n",max);
printf("%d\n",min);
}
int main()
{
int a=6;int b=12;
s(a,b);
getchar();
}
*/
/*a+aa+aaa+aaaa+aaaaa;n=5:
#include<stdio.h>
int Fun(int a,int n)
{
int i;
int sum=0;
int temp=0;
for(i=0;i<n;i++)
{
temp=temp*10+a;
sum=sum+temp;
}
return sum;
}
void main()
{
int a=2;
int n=5;
Fun(a,n);
printf("%d\n",Fun(a,n));
}
*/
/*
输出水仙花数:
#include<stdio.h>
int Fun(int n)
{
int a,b,c,d,j;
for(j=100;j<n;j++)
{
a=j%10;
d=j/10;
b=d%10;
c=j/100;
if(j==a*a*a+b*b*b+c*c*c)
printf("%d\n",j);
} return 0;
}
void main()
{
int n=1000;
Fun(n);
}
*/
/*
找出1000之内的完数;
6=1+2+3:
#include<stdio.h>
int Fun(int n)
{
int i,j;
int sum=0;
for(i=1;i<=n;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
}
}
if(i==sum)
{
printf("%d\n",i);
}
sum=0;
} return 0;
}
void main()
{
int n=1000;
Fun(n);
}
*/
/*
分数数列前n项和
#include<stdio.h>
float Fun(int n)
{
int a=1;
int b=2;
int c,i;
float sum=0;
for(i=0;i<n;i++)
{
sum=sum+(float)b/a;//求和
c=b;
b=b+a;
a=c;
}
return sum;
}
float main()
{
int n=3;
Fun(n);
printf("%f\n",Fun(n));
}
// 将斐波那契数列写入数组:
#include<stdio.h>
int F(int n)
{
int i;
int f[20]={1,1};
for(i=2;i<n;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<n;i++)
printf("%d\n",f[i]);
return 0;
}
int main()
{
int n=20;
F(n);
}
/求连续子数组的最大和;开始下标和结束下标:
#include<stdio.h>
int Fun(int *p,int len)
{
int sum=0;
int max=p[0];
int begin=0;
int end=0;
for(int i=0;i<len;i++)
{
for(int j=1;j<=len-i;j++)
{
sum=0;
for(int k=i;k<i+j;k++)
{
sum+=p[k];
}
if(max<sum)
{
max=sum;
begin=i;
end=i+j-1;
}
}
}
printf("%d %d\n",begin,end);
return max;
}
int main()
{
int max=0;
int a[]={2,6,-3,9,-2,-7};
max=Fun(a,6);
printf("%d\n",max);
}
猴子吃桃问题,第十次还有一个桃,一共摘了多少桃:
#include<stdio.h>
int Fun(int j)//j为桃变化的总次数
{
int n=1;//N为最后一次所剩的桃数
int i;
for(i=1;j>i;--j)
{
n=2*n+2;//第j次的桃数
}
return n;
}
void main()
{
int j=10;
printf("%d\n",Fun(j));
}
球的问题:
#include<stdio.h>
float Fun(float a,int n)//a为球的初始位置,n为下落的次数
{
int i;//i为第几次下落
float sum=0;//先定义路程为0;
float h=0;//h为每次反弹的高度
if(i=0)
{
sum=0;
h=0;
}
else
{
for(i=1;i<=n;i++)
{
sum=sum+a+h;
h=a/2;
a=h;
}
}
printf("%f\n",sum);
return h;
}
void main()
{
float a=100;
int n=10;
printf("%f\n",Fun(a,n));
}
删除偶数,输出删除后的数组长度
#include<stdio.h>
int Fun(int*arr,int len)
{
int i=0;
int j;
for(j=0;j<len;j++)
{
if(arr[j]%2!=0)
{
arr[i]=arr[j];
i++;
}
}
len=i;
return len;
}
int main()
{
int arr[]={1,3,6,5,2,7,8,9};
int len=sizeof(arr)/sizeof(arr[0]);
int a = Fun(arr,len);
for(int i=0;i<a;i++)
{
printf("%d ",arr[i]);
}
printf("长度=%d\n",a);
}