ADV-238 P0101"/>
蓝桥杯 ADV-238 P0101
蓝桥杯 ADV-238 P0101
题目描述
一个水分子的质量是3.0*10-23克,一夸脱水的质量是950克。写一个程序输入水的夸脱数n(0<= n <= 1e10),然后输出水分子的总数。
输入
109.43
输出
3.465283E+027
输出格式与输出相同(位数)
思路解析
- 将数转换为科学计算法,并利用格式控制符来控制位数,以达到题目的要求。注意 a n s < 1 ans<1 ans<1时候的处理。
#include<iostream>
#include<cmath>using namespace std;int main(){double n, ans;cin >> n;ans = (n * 950) / 3.0;if (ans == 0){cout << "0.000000E+000";}else if (ans >= 1){int num = log10(ans);printf("%6fE+%03lld", ans / pow(10, num), 23 + num);}else{int num = log10(ans) *-1 + 1;printf("%6fE+%03lld", ans * pow(10, num), 23 - num);}return 0;
}
- 题外话,输入格式为科学计数法,但是位数和题目要求有区别
#include<iostream>
#include<iomanip>using namespace std;int main(){int N;double weight, number;cin >> N;weight = N * 950;number = weight / (3.0e-23);printf("%E\n", number);return 0;
}
更多推荐
蓝桥杯 ADV-238 P0101
发布评论