#include <stdio.h> #include <stdlib.h> double myexp(double x); int main() { double x; printf(" x myexp(x) exp(x)\n"); for(x=0;x<=40;x=x+10) printf("%5.1f%14.6g%14.6g\n",x,myexp(x),exp(x)); system("pause"); } double myexp(double x) { double EPS = 1e-08; double s = 1.0,e=1.0,d=1.0; int k ; for(k=1;k<=200;k++) { d=s; e=e*x/k; s=s+e; if(fabs(s-d)<EPS*fabs(d)) return s; } return 0.0; } |
2011年10月28日 星期五
C 泰勒展開式練習
2011年10月17日 星期一
C 梯形法則積分練習(The trapezoidal rule)
| 新增說明文字 |
C 質因數分解練習 (prime factor )
#include <stdio.h>
#include <stdlib.h>
int main()
{
int div = 2;
int number;
int times =0;
printf("please input a number:");
scanf("%d",&number);
while (number >= div*div)
{
if(number%div == 0)
{
printf("%d*",div);
number = number/div;
times ++;
}
else
div++;
}
if(times)
printf("%d\n",number);
else
printf("Prime\n");
printf("compare times =%d",times);
system("pause");
}
#include <stdlib.h>
int main()
{
int div = 2;
int number;
int times =0;
printf("please input a number:");
scanf("%d",&number);
while (number >= div*div)
{
if(number%div == 0)
{
printf("%d*",div);
number = number/div;
times ++;
}
else
div++;
}
if(times)
printf("%d\n",number);
else
printf("Prime\n");
printf("compare times =%d",times);
system("pause");
}
2011年10月16日 星期日
C 輾轉相除法練習 (GCD)
#include <stdio.h>
#include <stdlib.h>
int GCD(int big, int small)
{
int remainder = 1;
while(remainder !=0)
{
remainder = big % small;
big = small;
small = remainder;
}
return big;
}
int main()
{
int a,b;
int rval;
printf("please input two number\t");
scanf("%d %d",&a,&b);
rval = GCD(a,b);
printf("The GCD is %d",rval);
system("pause");
}
#include <stdlib.h>
int GCD(int big, int small)
{
int remainder = 1;
while(remainder !=0)
{
remainder = big % small;
big = small;
small = remainder;
}
return big;
}
int main()
{
int a,b;
int rval;
printf("please input two number\t");
scanf("%d %d",&a,&b);
rval = GCD(a,b);
printf("The GCD is %d",rval);
system("pause");
}
C 質數檢查(Is Prime check )
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int isPrime(int number)
{
int i;
for(i=2;i<number;i++) // for(i=2;i<=((int)(sqrt(number)));i++)
{
if((number % i == 0 ))
return number;
}
return -1;
}
int main()
{
int number ;
int rval;
printf("please input a number\n ");
scanf("%d",&number);
rval = isPrime(number);
if(rval == -1)
printf(" %d is a prime\n",number);
else
printf(" %d is not a prime\n",number);
system("pause");
}
#include <stdlib.h>
#include <math.h>
int isPrime(int number)
{
int i;
for(i=2;i<number;i++) // for(i=2;i<=((int)(sqrt(number)));i++)
{
if((number % i == 0 ))
return number;
}
return -1;
}
int main()
{
int number ;
int rval;
printf("please input a number\n ");
scanf("%d",&number);
rval = isPrime(number);
if(rval == -1)
printf(" %d is a prime\n",number);
else
printf(" %d is not a prime\n",number);
system("pause");
}
2011年10月15日 星期六
C 費氏數列練習 (Fibonancci Recursive & Non_Recursive)
/*********************************************
Fibonacci :
fn = fn-1 + fn-2 if n > 1
fn = n if n = 0, 1
*********************************************/
//Recursive
#include <stdio.h>
#include <stdlib.h>
int fib_fun(int fib)
{
if(( fib == 0) || (fib == 1 ))
return 1;
else
return fib_fun(fib-1)+ fib_fun(fib-2);
}
int main()
{
int fib,sum;
printf("pleae input a number\t");
scanf("%d",&fib);
if(fib < 0)
printf("Input Wrong\n ");
else
{
sum = fib_fun(fib);
printf("Answer is %d",sum);
}
system("pause");
}
//Non_Recursive
#include <stdio.h>
#include <stdlib.h>
int main()
{
int fib;
int sum =1;
int i;
int a =1,b=1;
printf("pleae input a number \t");
scanf("%d",&fib);
if(fib < 0)
printf("Input Wrong\n ");
else
{
if((fib ==0) || (fib ==1))
sum =1;
else
{
for(i=2;i<=fib;i++)
{
sum =a+b;
a = b;
b = sum;
}
}
printf("Answear =%d \n " , sum);
}
system("pause");
}
Fibonacci :
fn = fn-1 + fn-2 if n > 1
fn = n if n = 0, 1
*********************************************/
//Recursive
#include <stdio.h>
#include <stdlib.h>
int fib_fun(int fib)
{
if(( fib == 0) || (fib == 1 ))
return 1;
else
return fib_fun(fib-1)+ fib_fun(fib-2);
}
int main()
{
int fib,sum;
printf("pleae input a number\t");
scanf("%d",&fib);
if(fib < 0)
printf("Input Wrong\n ");
else
{
sum = fib_fun(fib);
printf("Answer is %d",sum);
}
system("pause");
}
//Non_Recursive
#include <stdio.h>
#include <stdlib.h>
int main()
{
int fib;
int sum =1;
int i;
int a =1,b=1;
printf("pleae input a number \t");
scanf("%d",&fib);
if(fib < 0)
printf("Input Wrong\n ");
else
{
if((fib ==0) || (fib ==1))
sum =1;
else
{
for(i=2;i<=fib;i++)
{
sum =a+b;
a = b;
b = sum;
}
}
printf("Answear =%d \n " , sum);
}
system("pause");
}
C 二分搜尋法練習(Binary Search)
#include <stdio.h>
#include <stdlib.h>
//compare to sequential search, binary search data must have been sorted!
int bin_search(int number,int *number_data,int index)
{
int low =0;
int upper = index;
int middle;
while(low <= upper)
{
middle =(low+upper)/2 ;
printf("low = %d\t",low);
printf("middel = %d \n",middle);
if(number == number_data[middle])
return middle ;
else
{
if(number > number_data[middle])
low = middle + 1;
else
upper = middle - 1;
}
}
return -1;
}
int main()
{
int number;
int rval = 0;
int number_data[]={11,22,33,44,55,66};
printf("please input a number :\t");
scanf("%d",&number);
rval = bin_search(number,number_data,6);
if(rval == -1)
printf("Not Find Number\n ");
else
printf("Find Number %d at position %d \n", number,(rval+1));
system("pause");
}
#include <stdlib.h>
//compare to sequential search, binary search data must have been sorted!
int bin_search(int number,int *number_data,int index)
{
int low =0;
int upper = index;
int middle;
while(low <= upper)
{
middle =(low+upper)/2 ;
printf("low = %d\t",low);
printf("middel = %d \n",middle);
if(number == number_data[middle])
return middle ;
else
{
if(number > number_data[middle])
low = middle + 1;
else
upper = middle - 1;
}
}
return -1;
}
int main()
{
int number;
int rval = 0;
int number_data[]={11,22,33,44,55,66};
printf("please input a number :\t");
scanf("%d",&number);
rval = bin_search(number,number_data,6);
if(rval == -1)
printf("Not Find Number\n ");
else
printf("Find Number %d at position %d \n", number,(rval+1));
system("pause");
}
訂閱:
文章 (Atom)