《算法竞赛入门经典》(第二版)第一章笔记
发布时间
阅读量:
阅读量
第一章 程序设计入门
笔记
算术表达式→保留小数点后1位的方法(“%.1f”,a.0/b.0);
控制输出格式:%3d(保证输出有3位)
(int)整数用%d输出,(double)实数用lf%输入,%f输出(比较特殊,一般用这个不用float)
整数-浮点数=浮点数(整数才能求余)
const表示变量不允许被改变(定义常量)
赋值是个动作,先计算右边的值再赋给左边的值,覆盖它原来的值。
{i++:①先赋i的值→②i的值加1 ++i: ①i的值加1→②再赋改变后的i的值}
if可以用整数值1或0来表示真或假,常用做输出刚好不同时候的flag。
学会使用伪代码来写思路(先写框架再写细节,主程序→对函数的调用→实现函数本身),以及用手过程序的检验方法(多动脑多动手)。
敲了一些书上的代码和后面自己写的习题↓↓↓
代码
(不保证全对 有错误欢迎指出555):
习题1-7 年份
int n;
scanf("%d",&n);
if(n%4==0&&n%100!=0||n%400==0)//闰年能被400整除或者能被4整除但不能被100整除
printf("yes");
else
printf("no");
习题1-6 三角形
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a*a+b*b==c*c)
printf("yes");
else if(b*b+c*c==a*a)
printf("yes");
else if(c*c+a*a==b*b)
printf("yes");
else if(a+b<=c)
printf("no a triangle");
else if(a+c<=b)
printf("no a triangle");
else if(b+c<=a)
printf("no a triangle");
else
printf("no");
习题1-5 打折
double n;
int money=95;
scanf("%lf",&n);
if(n>3)
printf("%.2lf",0.85*money*n);
else
printf("%.2lf",money*n);
习题1-4 正弦和余弦
const double pi=acos(-1.0);
double r,h,s1,s2,s;
scanf("%lf%lf",&r,&h);
s1=pi*r*r;
s2=2*pi*r*h;
s=s1*2.0+s2;
printf("%.3f\n",s);
习题1-3 连续和
int n,sum=0;
scanf("%d",&n);
for(int i=0;i<=n;i++)
{sum=sum+i;}
printf("%d\n",sum);
习题1-2 温度
double f,c;
scanf("%lf",&f);
c=5*(f-32)/9;//会自动四舍五入
printf("%.3lf\n",c);
习题1-1 平均数
double a,b,c,z;//一开始把double写成了float
scanf("%lf %lf %lf",&a,&b,&c);
z=(a+b+c)/3.0;
printf("%.3lf\n",z);
程序1-14 三整数排序
int a,b,c,t;
scanf("%d %d %d",&a,&b,&c);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}
printf("%d %d %d",a,b,c);
程序1-11 鸡兔同笼
int n,m,x,y;
scanf("%d %d",&n,&m);
x=(4*n-m)/2;
y=(m-2*n)/2;
if(x%2==1||x<0||y<0)
printf("No answer\n");
else
printf("%d %d",x,y);
程序1-7 三位数反转
int n,x,y,z,t;
scanf("%d",&n);
x=n/100;y=n/10%10;z=n%10;
t=z*100+y*10+x;
printf("%03d",t);
全部评论 (0)
还没有任何评论哟~
