1、/*1、素数是指只能被自己和1整除的数*/
#include
2、入1,返回100*/
long retrograde(long a, int b)
{ long m=a,y=0;
int i;
switch(b)
{ caes 2: return m+(m/10-m%10)*(1-10);
case 3: return m+(m/100-m%10)*(1-100);
case 4: return m+(m/1000-m%10)*(1-1000)+(m/100)%10*(10-100)-(
3、m/10)%10*(10-100);
case 0: while(m) {y=y*10+m%10; m/=10;}
}
return y;
}
★ 例子:(b=0适用于回文数判别;b=3、4适用于陷阱数求取)
#include
long retrograde(long a, int b)
{ long m=a,y=0;
int i;
switch(b)
{ case 2: return m+(m/10-m%10)*(1-10);
case 3: return m+(m/100
4、m%10)*(1-100);
case 4: return m+(m/1000-m%10)*(1-1000)+(m/100)%10*(10-100)-(m/10)%10*(10-100);
case 0: while(m) {y=y*10+m%10; m/=10;}
}
return y;
}
void main()
{ long a=12345,c=1;
printf("b=2 is %d\n",retrograde(c,2));
printf("b=3 is %d\n",retrograde(c,3));
pr
5、intf("b=4 is %d\n",retrograde(c,4));
printf("b=0 is %d\n",retrograde(a,0));
}
/*3、寻找最大、最小通用函数(judge为1时,求最大值;0时求最小值)
/*4、求最大公约数 欧几里得算法:*/
int gcd( int m, int n)
{ int t,r;
if(m6、 }
return m;
}
/*5、求最小公倍数 算法:两数之积除以最大公约数所得的值即为最小公倍数*/
int gcd( int m, int n)
{ int t,r;
while(n!=0)
{ r=m%n; m=n; n=r; }
return (m*n)/m;
}
/*6、整数的各位分离成一维整型数组元素*/
void inte(long n,int a[], int *k)
7、 { long m;k=0;
m=n;
while(m>0)
{ a[k++]=m%10; m=m/10; }
}
/*7、一维整型数值数组元素逆置 第一个与最后一个交换,第二个与倒数第二个交换…..*/
void exchange(int a[], int n)
{ int i, t;
for(i=0;i8、1]=t; }
}
如要将字符串倒序排列函数改为:
#include
#include
void exchange(char *a)
{ int i ,n; char t; n=strlen(a);
for(i=0;i<=n/2;i++)
{ t=a[i]; a[i]=a[n-i-1]; a[n-i-1]=t; }
}
void main()
{ char g[]="abcdefgh";
printf("before:%s\n",g);
exchang
9、e(g);
printf("after:%s\n",g);
}
/*8、求阶乘*/
long func(int n)
{ int i;
long t=1;
for(i=2;i<=n;i++) t*=i;
return t;
}
/*9、简单起泡法通用函数:以Fibonnacii数列中求质数后要求排序输出为例。judge=1时为升序;judge=0时为降序*/
/*10、求“正整型数”(包括1,但不包括数本身)的真因子及其之和通用函数*/
#include 10、o.h>
int fac(int n, int b[], int *p)
{ int k=0,s,i;
s=n;
for(i=2;i<=s;i++)
if(s%i==0) {b[k++]=s/i;} /*真因子数为k*/
*p=k;
s=0;
for(i=0;i