版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/qq_42680327
1、用函数编写计算整数n的阶乘n!
#include void main(){
long fact(int a);
int x;
long c;
printf("Please input x: ");
scanf("%d",&x);
c=fact(x);
printf("%d!的阶乘是=%ld\n",x,c);
}
long fact(int a){
long result=1;
for(int i=2;i<=a;i++){
result*=i;
}
return result;
}
递归实现阶乘
#include long recursion(int m);
void main(){
int num;
long result;
printf("Please input is num: ");
scanf("%d",&num);
result=recursion(num);
printf("%d! = %ld\n", num,result);
}
long recursion(int m){
int temp_result;
if(m<0){
printf("n<0, input error!\n");
}
else if(m==0||m==1){
temp_result=1;
}
else{
temp_result=m*recursion(m-1);
}
return temp_result;
}
2、题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#include void main(){
int i,j,k;
int count=0;
for(i=1;i<5;i++){ /*以下为三重循环*/
for(j=1;j<5;j++){
for(k=1;k<5;k++){
if(i!=j&&j!=k&&k!=i){ /*确保i、j、k三位互不相同*/
count++;
printf("%d%d%d\t",i,j,k);
if(count%10==0){
printf("\n");
}
}
}
}
}
printf("\n");
printf("由1,2,3,4共可以组成 %d 个互不相同且不重复的三位数!\n",count);
}
3、通过我们自己编写的power,求一个数的三次方
#include void main(){
double power(double a, double b);
double x=3.0,y=3.0;
double result;
result=power(x,y);
printf("%.2f 的 %.2f 次方是 %.2f\n",x,y,result);
}
double power(double a, double b){
double z=1;
while(b--){
z*=a;
}
return z;
}
4、利用sqrt()函数的原理进行编程(要求整形数据)
#include #include #include void main(){
double question=49,answer;
answer=sqrt(question);
if(answer<0){
printf("Error : sqrt return %.2f\n",answer);
}
printf("The squre root of %.2f is %.2f\n",question,answer);
}
我们还可以通过我们自己定义sqrt_02()函数来实现:(尝试一下非整形数据)看下面:
#include int sqrt_02(int questions);
void main(){
int question=64,answer;
answer=sqrt_02(question);
if(answer<0){
printf("Error : sqrt return %d\n",answer);
}else{
printf("The squre root of %d is %d\n",question,answer);
}
}
int sqrt_02(int questions){
int temp=questions/2;
while(true){
if(temp*temp==questions){
return temp;
}
else{
temp-=1;
}
}
}
#include int sqrt_02(int questions);
void main(){
int question=48,answer;
answer=sqrt_02(question);
if(answer<0){
printf("Error : sqrt return %d\n",answer);
}else{
printf("The squre root of %d is %d\n",question,answer);
}
}
int sqrt_02(int questions){
int temp=questions/2;
while(temp--){
if(temp*temp==questions){
return temp;
}
}
return -1;
}
5、题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足条件,即是结果
#include #include void main(){
long int i,x,y;
for(i=1;i<=100000;i++){
x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268){
printf("%ld\n",i);
}
}
}