在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线
对余弦曲线放大十倍
#include<stdio.h>
#include<math.h>
int main()
{
double y;
int x,m;
for(y=1;y>=-1;y-=0.1)
{
m=acos(y)*10;
for(x=1;x<m;x++) printf(" ");
printf("*");
for(;x<62-m;x++)printf(" ");
printf("*/n"); }
return 0;
}
余弦曲线:有误差,对部分数据作了调整
#include <iostream>
#include<math.h>
int main()
{
double y;
int x,m;
using namespace std;
for(y=1;y>=0;y-=0.1)
{
m=asin(y)*10 ;
for(x=1;x<=m;x++)
cout<<" " ;
cout<<"*" ;
for(;x<32-m;x++)
cout<<" " ;
cout<<"*/n" ;
}
for(y=0;y>=-1;y-=0.1)
{
m=-asin(y)*10+34;
for(x=1;x<m;x++)
cout<<" " ;
cout<<"*" ;
for(;x<96-m;x++)
cout<<" " ;
cout<<"*/n" ;
}
return 0;
}
绘制余弦曲线和直线:
#include<stdio.h>
#include<math.h>
int main()
{
double y;
int x,m,n,yy;
for(yy=0;yy<=20;yy++)
{
y=0.1*yy;
m=acos(1-y)*10;
n=45*(y-1)+31;
for(x=0;x<=62;x++)
if(x==m&&x==n) printf("+");
else if(x==n) printf("+");
else if(x==m||x==62-m) printf("*");
else printf(" ");
printf("/n");
}
return 0;
}
sin(x)曲线与cos(x)曲线图形的同时显示
#include <iostream>
#include<math.h>
int main()
{
double y;
int x,m,m1;
using namespace std;
for(y=1;y>=-1;y-=0.1)
{
m1=acos(y)*10;
if(y>0)
{
m=asin(y)*10 ;
for(x=1;x<=62;x++)
if(x==m||x==32-m||x==m1||x==60-m1)
cout<<"*" ;
else
cout<<" " ;
cout<<endl ;
}
else
{
m=-asin(y)*10+32;
for(x=1;x<62;x++)
if(x==m||x==96-m||x==m1||x==60-m1)
cout<<"*" ;
else
cout<<" " ;
cout<<endl ;
}
}
return 0;
}
绘制圆
#include<stdio.h>
#include<math.h>
int main()
{
double y;
int x,m;
for(y=10;y>=-10;y--)
{
m=2.5*sqrt(100-y*y); /*计算行y对应的列坐标m,2.5是屏幕纵横比调节系数因为屏幕的行距大于列距,不进行调节显示出来的将是椭圆*/
for(x=1;x<30-m;x++) printf(" "); /*图形左侧空白控制*/
printf("*"); /*圆的左侧*/
for(;x<30+m;x++) printf(" "); /*图形的空心部分控制*/
printf("*/n"); /*圆的右侧*/
}
return 0;
}
阶乘尾数零的个数
#include <math.h>
#include <stdio.h>
main()
{
int i ,m, n,j;
int cnt=j=0;
printf("输入一个数:/n");
scanf("%d",&n);
m=n;
while(m/5)
{
j++;
m/=5;
}
for(i=1;i<=j;i++)
{
m=pow(5,i);
cnt+=n/m;
}
printf("%d的阶乘的尾部0的个数为:%d/n",n,cnt);
}
阶乘尾数零的个数优化
这个写的还算有点水平,呵呵!
#include <stdio.h>
main()
{int cnt=0,n;
printf("输入一个数,计算尾部零的个数:/n");
scanf("%d",&n);
while(n)
{n/=5;
cnt+=n ;}
printf("尾部零的个数为:%d/n",cnt);
}
借书方案
自己写的算法
#include<stdio.h>
void printb(int,int);
int main()
{
int x,int aa[32],p,cnt=sizeof(int)*8,i,n;
printf("Input number:");
scanf("%d",&x);
printf("number of decimal form:%d/n",x);
if(x<0)
{
p=1;
x=-x;
}
for(i=0;i<cnt;i++)
aa[i]=0 ;
i=cnt ;
while(x)
{
i-- ;
aa[i]=x%2 ;
x=x/2 ;
}
//对负数求原码
if(p==1)
{
for(i=cnt;i>=0;i--)
if(aa[i]==0)
aa[i]=1;
else
aa[i]=0 ;
for(i=cnt;aa[i]==1&&i>=0;i--)
aa[i]=0 ;
aa[i]=1 ;
}
printf(" it's binary form:");
for(i=0;i<cnt;i++)
printf("%d",aa[i]);
}
int main()
{
int a,b,c,count=0;
printf("There are diffrent methods for XM to distribute books to 3 readers:/n");
for(a=1;a<=5;a++) /*穷举第一个人借5本书中的1本的全部情况*/
for(b=1;b<=5;b++) /*穷举第二个人借5本书中的一本的全部情况*/
for(c=1;a!=b&&c<=5;c++) /*当前两个人借不同的书时,穷举第三个人借5本书
中的1本的全部情况*/
if(c!=a&&c!=b) /*判断第三人与前两个人借的书是否不同*/
printf(count%8?"%2d:%d,%d,%d ":"%2d:%d,%d,%d/n ",++count,a,b,c);
/*打印可能的借阅方法*/
}
杨辉三角
#include<stdio.h>
int c(int x,int y) ;
int main()
{
int i,j,n;
printf("N="); //12行以内,多则堆积
scanf("%d",&n); /*控制输入正确的值以保证屏幕显示的图形正确*/
for(i=0;i<=n;i++) /*控制输出N行*/
{
for(j=0;j<24-2*i;j++) printf(" "); /*控制输出第i行前面的空格*/
for(j=1;j<i+2;j++) printf("%4d",c(i,j)); /*输出第i行的第j个值*/
printf("/n");
}
}
int c(int x,int y) /*求杨辉三角形中第x行第y列的值*/
{
int z;
if((y==1)||(y==x+1)) return 1; /*若为x行的第1或第x+1列,则输出1*/
z=c(x-1,y-1)+c(x-1,y); /*否则,其值为前一行中第y-1列与第y列值之和*/
return z;
}
数制转换
#include<stdio.h>
void printb(int,int);
int main()
{
int x;printf("Input number:");
scanf("%d",&x);
printf("number of decimal form:%d/n",x);
printf(" it's binary form:");
printb(x,sizeof(int)*8);
putchar('/n');
}
void printb(int x,int n)
{
if(n>0)
{
putchar('0'+((x& (unsigned)(1<<(n-1)) ) >>(n-1) ));
printb(x,n-1);
}
}
自己写的数制转换
#include<stdio.h>
void printb(int,int);
int main()
{
int x,int aa[32],p,cnt=sizeof(int)*8,i,n;
printf("Input number:");
scanf("%d",&x);
printf("number of decimal form:%d/n",x);
if(x<0)
{
p=1;
x=-x;
}
for(i=0;i<cnt;i++)
aa[i]=0 ;
i=cnt ;
while(x)
{
i-- ;
aa[i]=x%2 ;
x=x/2 ;
}
//对负数求原码
if(p==1)
{
for(i=cnt;i>=0;i--)
if(aa[i]==0)
aa[i]=1;
else
aa[i]=0 ;
for(i=cnt;aa[i]==1&&i>=0;i--)
aa[i]=0 ;
aa[i]=1 ;
}
printf(" it's binary form:");
for(i=0;i<cnt;i++)
printf("%d",aa[i]);
}