1.五次方数
题目描述
对一个数十进制表示时的每一位数字乘五次方再求和,会得到一个数的五次方数
例如:1024的五次方数为1+0+32+1024=1057
有这样一些神奇的数,它的五次方数就是它自己,而且这样的数竟然只有有限多个
从小到大输出所有这样的数
输入
无
输出
每个数独立一行输出
样例输入
无
样例输出
无
先普及一个pow()函数的使用
pow() 函数用来求 x 的 y 次幂(次方),其原型为:
double pow(double x, double y);
这个题最关键是循环次数的设置,设过1e6,1e9等等都时间超限,其实在自己本地的编译器先跑一下,发现最大的数是194979,循环200000次就够了。另外,此题0和1不算。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll sum=0;
int main(){
for(int i=2;i<=200000;i++){
int a=i;
while(a){
sum+=pow(a%10,5);
if(sum>i)
break;
a=a/10;
}
if(sum==i)
cout<<sum<<endl;
sum=0;
}
return 0;
}
2.利息计算
题目描述
编制程序完成下述任务:接受两个数,一个为用 户一年期定期存款金额,一个为按照百分比格式表示的利率;程序计算一年期满后本金与利息总额。说明:(1)存款金额以人民币元为单位,可能精确到分; (2)输入利率时不需要输入百分号,例如一年期定期存款年利率为2.52%,用户输入2.52即可;(3)按照国家法律,存款利息所得需缴纳20% 的所得税,计算结果时所得税部分应扣除。
输入
输入一行,包含两个实数,分别表示本金和年利率。
输出
输出一行,包含一个实数,保留到小数点后两位,表示一年后的本金与利息和。
样例输入
10000 2.52
样例输出
10201.60
这个题主要两个点:
1.要看清题,是哪个数来算利息所得税
2.重要的是,fixed和setprecision()连用指定浮点数字的小数点后要显示的位数,而setprecision单用表示要显示的总有效数字位数
#include <bits/stdc++.h>
using namespace std;
int main(){
float a,b; //本金和年利率
cin>>a>>b;
float sum=a+a*b*0.01;
cout<<fixed<<setprecision(2)<<sum-a*b*0.01*0.2<<endl;
return 0;
}