【洛谷】洛谷深基学习记录 第一章 简简单单写程序

一、知识积累

1、除法运算

分苹果:将14个苹果分给4个人,分不掉的苹果放回冰箱。问:

1)每位同学能分到几个苹果?

2)把几个苹果放回冰箱?

#include<iostream>
using namespace std;
int main(){
    cout << 14/4 << endl;
/*这里的“/”是整除的符号,
  除完后只保留整数的商,
  不继续对余数做运算,
  因为那样就变成浮点数的除法了;*/
    cout << 14%4 << endl;
/*这里的“%”是求余的符号,
  对14/4进行求余后,
  输出其整除后的余数;*/
    return 0;
}

2.浮点数输出

均分肥宅水:把500毫升的肥宅水均分给三个人,问每个人分到多少毫升?

#include<iostream>
using namespace std;
int main(){
    cout << 500.0/3 << endl;//cout << 1.0*500/3 <<endl;
    /*可以发现,题目里的500在这里写成500.0,这样就把整数化成了浮点数,
      对浮点数进行除法运算,就会输出带小数的数字了,
      也就是会对余数也做除法,但结果并不一定很精准,
      计算机中浮点数的精确位数是有限的。
      若在计算过程中需要带小数点的中间量,就可以给除以号前或后的数字乘上1.0*/
    return 0;
}
#对于浮点数,还需要注意的是,
计算机表示的浮点数都是有一定的误差的,
故不能出现 浮点数==某个值 这种情况。

3.科学计数法

#include<iostream>
using namespace std;
int main(){
    cout << 5e6/50+2e-6-8e+7 <<endl;
    /*用e加上后面的数字来表示*10的几次方,e后的数字可正可负;
      只能用科学计数法缩写三个或以上的10或-10,100不能写做1e2;*/
    return 0;
}
#值得注意的是,用科学计数法表示的数属于浮点数,最好不要让浮点数和整数比大小。

4.数学函数

多重复合计算:计算6的3次方和5的4次方的和,再求这个数除以840的余数,对这个余数开方后,结果减去11,然后取绝对值,之后再整除除以10,再以这个数作为自然常数的指数,再求自然对数,用这个数加上0.1,向上取整后,减去0.1,再向下取整,得到最终答案是1,请写出整个过程的代码。

#include<iostream>
#include<cmath>//这个是数学函数的头文件,要用到那些取几次方、绝对值、自然对数之类的函数,代码前头得加上这句;
using namespace std;
int main(){
	int nu=pow(6,3)+pow(5,4);
//pow(a,b)是是取a的b次方的函数,这里的b也可以是分数,但要乘上1.0;
	nu=nu%840;
//%为求余运算,只有int类的整形变量才可以用,double就不行;
	double num=sqrt(nu)-11;
//sqrt()是开二次方的函数,有点像square,不过是开方而不是平方;
	num=fabs(num);
//fabs是取绝对值的函数;
	num=num/10;
	num=exp(num);
//exp()是取自然对数e的几次方的函数,比如这里就可以得到e的num次方;
	num=log(num);
//log()相当于ln,能得到括号里的数的自然对数;
	num+=0.1;
/*这里在数的后面加上一个+,
  能输出这个数加上等号后的数,
  类似的语句叫做自赋值语句,
  还可以使用-=、*=、/=和%=;*/
	num=ceil(num);
//ceil()是向上取整函数,输出大于或等于这个数的最小整数,ceiling就是天花板;
	num-=0.1;
	num=floor(num);
//floor()是向下取整函数,输出小于或等于这个数的最大整数,floor就是地板;
	cout<<num<<endl;
	return 0;
//以上这些数学函数的括号里无论是什么类型的数,经过运算后都会输出double型的数。

5.定义常量

计算面积:有一个半径为5的圆,求它的面积。

#include<iostream>
#define PI 3.1415926535897932
/*这里在代码前声明语句的后面,
可以用#define来定义一个常量,
叫做宏定义,意思就是在最高层次定义这个常量。
常量通常用大写字母表示,
定义后,计算机会自动把接下来程序里所有的PI粗暴地换成定义的值;*/
using namespace std;
int main(){
    int r=5;
    cout<<PI*pow(r,2)<<endl;
    return 0;
#include<iostream>
using namespace std;
int main(){
    int r=5;
    const double PI=3.1415926535897932;
/*这是第二种定义常量的方法,
  就是像定义变量一样,
  但是在变量种类前要加一个const,
  要注意的是,接下来不能再给这个常量赋值了,
  会显示编译错误。总之,在定义常量前,
  一定要想好这个数在接下来的程序里是否自始至终都不会改变;*/
    cout<<PI*r*r<<endl;
    return 0;
}

6.命名变量

#include<iostream>
using namespace std;
int main(){
    int _1apple = 1;//给变量起名要一目了然,不能以数字开头,但大小写字母和下划线都可以;
    double iPhone = 10000;
    cout <<_1apple+iPhone << endl;
    return 0;

二、课后习题答案

习题1-1

(1) 3*x+5*y

(2)(c+1)/(a*b)

(3)sqrt(3*pow(a,3)) 或 pow(3*pow(a,3),1.0/2)

(4)(n+2)*(n-9)

习题1-2

对 对 对 错 错 对 对 错 错

习题1-3

建议安装dev C++,手打一遍代码。

习题1-4

(1)扫教室

#include<iostream>
using namespace std;
int main(){
	double effic=1.0*(3/3)/3;
	double answer=effic*9*9;
	cout<<answer<<endl;
	return 0;
}

(2)长方形面积

#include<iostream>
using namespace std;
int main(){
	int length,width,S;
	width=(24-4)/2;
	length=width+4;
	S=width*length;
	cout<<S<<endl;
	return 0;
}

(3)竞赛得分

#include<iostream>
using namespace std;
int main(){
	cout<<"小A="<<480.0/(1.0+1.4)<<endl;
	cout<<"Uim="<<480-480.0/(1.0+1.4)<<endl;
	return 0;
}

(4)分苹果

#include<iostream>
using namespace std;
int main(){
	cout<<"同学人数="<<(-11*(-1)-(-1)*1)/(3*(-1)-4*(-1))<<endl;
	cout<<"苹果个数="<<(3*1-4*(-11))/(3*(-1)-4*(-1))<<endl;
	return 0; 
}

(5)打字追及

#include<iostream>
using namespace std;
int main(){
	cout<<80*12/(120-80)<<endl;
	return 0;
}

(6)鸡兔同笼

#include<iostream>
using namespace std;
int main(){
	cout<<"兔子数量:"<<(94*1-35*2)/(4*1-1*2)<<endl;
	cout<<"鸡的数量:"<<(4*35-1*94)/(4*1-1*2)<<endl;
	return 0; 
}

(7)银行存款

#include<iostream>
#include<cmath>
using namespace std;
int main(){
	cout<<"小A五年后的钱:"<<10000.0*pow((1+0.035),5)<<endl;
	cout<<"Uim五年后的钱:"<<10000.0*(1+5*0.04)<<endl;
	return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值