c++基础训练(五)
感觉这几道题目中规中矩
(1)给定一个浮点数,要求得到该浮点数的个位数。
输入:一行,包括一个浮点数。例如:13.141
输出:一行,包含一个整数,为输入浮点数对应的个位数。例如:3
#include<bits/stdc++.h>
using namespace std;
int main(){
double a=0;
cin>>a;
cout<<(int)a%10<<endl;
}
这个题基本没啥难度,仔细一想其实就是对一个数先变成他的整数型(直接用int就行),然后求余呗,题目要求输出各位,那就对10求余。
(2) 问题:一年约有3.156×107s,要求输入您的年龄,显示该年龄合多少秒。
输入:一行,包括一个整数age(0<age<=200)。例如:20
输出:一行,包含一个整数,输出年龄对应的秒数。例如:631200000
#include<bits/stdc++.h>
using namespace std;
int main(){
long long age=0;
cin>>age;
cout<<age*31560000<<endl;
return 0;
}
这个题目本来也没啥难度,就是乘法,但是一定要注意范围,20年是九位数字,200年就是十位数字,这个要注意好long与longlong的范围界限,我第一次做就是定义称为了long类型,结果数值超出范围,报错了
类型名称 字节数 取值范围
signed char 1 -2^7 ~ 2^7-1 -128~+127
short int 2 -2^14 ~ 2^14-1 -32768~+32767
int 4 -2^31 ~ 2^31-1 -2147483648~+2147483647
unsigned int 4 0 ~ 2^32-1 0 ~ 4294967295
long int 4 -2^31 ~ 2^31-1 -2147483648~+2141483647 (同int)
unsigned long 4 0 ~ 2^32-1 0~4294967295
long long int 8 -2^63 ~ 2^63-1 -9223372036854775808~+9223372036854775807
unsigned long long 8 0 ~ 2^64-1 18446744073709551615
__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615
这里我引用一位前辈博文里的范围表(原文链接:https://blog.csdn.net/qq_28584889/article/details/83501771)
(3)给定秒数seconds (0< seconds < 100,000,000),把秒转化成小时、分钟和秒。
输入:一行,包括一个整数,即给定的秒数。例如:3661
输出:一行,包含三个整数,依次为输入整数对应的小时数、分钟数和秒数(可能为零),中间用一个空格隔开。例如:1 1 1
#include<bits/stdc++.h>
using namespace std;
int main(){
int hour,mintue,second,seconds=0;
cin>>seconds;
if(seconds>=3600){
hour=seconds/3600;
int j=seconds%3600;
mintue=j/60;
second=j%60;
cout<<hour<<" "<<mintue<<" "<<second<<endl;
}
else if(seconds>=60||seconds<3600){
mintue=seconds/60;
second=seconds%60;
cout<<hour<<" "<<mintue<<" "<<second<<endl;
}
else{
cout<<hour<<" "<<mintue<<" "<<seconds<<endl;
}
return 0;
}
大致思路就是先看输入的秒数是否大于3600秒,大于就除以3600得到小时数,然后用输入秒数求余得到余数去除以60,然后求余60,分别得到分钟和秒数。如果一开始没大于3600,我们再来看是否大于60,然后用同样的思想得到分钟和秒数,最后一种就是小于60秒的情况,直接输出。当然代码还可以这样写
#include <bits/stdc++.h>
using namespace std;
int main (){
int n;
cin>>n;
cout<<n/3600<<" "<<(n-3600*(n/3600))/60<<" "<<n-60*(n/60);
return 0;
}
差不多一看就明白了,这样可以少设置好几个变量。