1.保密员(baomi)
【问题描述】
在一次考试中,贝贝被派去做考场的监控保密工作,考场中每个试室都装了一个视频监控,出于安全考虑,系统为每个考室设置了一个监控密码,为了密码的安全,考试中心分发给每个试室的密码是一个x(x16)进制的小数,如果贝贝要打开试室的监控视频,必须把这个x进制小数转换成十进制小数,然后去小数点的后四位,即为打开试室的监控视频的密码。输入的数据中,分别用大小字母A~F表示数字10~15.
由于试室比较多,贝贝在短时间内很难计算出密码,为了不影响考试工作,请你帮贝贝编写一个程序,准确计算出每个试室监控密码。
【输入格式】
输入文件第1行是整数想,第2行是需要转换的小数。
【输出格式】
删除文件为一个十进制小数,计算结果四舍五入,保留小数点后4位有效数字。
【输入样例】
16
0.12B
【输出样例】
0.0730
这道题目到底怎么做呀?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- StjpStjp 2021-08-29 20:27关注
如果我的回答对你有帮助,请点击旁边的采纳按钮,谢谢
#include <iostream> #include <cstdio> #include <algorithm> #include <string> #include <cstring> #include <cstdlib> #include <cmath> #include <stack> #include <queue> #include <set> #include <map> #include <vector> #include <ctime> #include <cctype> #include <bitset> #include <utility> #include <sstream> #include <complex> #include <iomanip> #define inf 0x3f3f3f3f typedef long long ll; using namespace std; int n; string s,s1="",s2=""; int ksm(int a,int b) { int ans=1; while(b) { if(b&1) ans*=a; a*=a; b>>=1; } return ans; } int main() { int cd,ct,cd1,ct1=0,cd2=1; double ct2=0.0; cin>>n; getchar(); cin>>s; cd=s.size(); for(int i=0;; i++) { if(s[i]=='.') { ct=i; break; } s1+=s[i]; } reverse(s1.begin(),s1.end()); cd1=s1.size(); for(int i=0; i<cd1; i++) { if(s[i]>='0'&&s[i]<='9') ct1=ct1+(s[i]-'0')*ksm(n,i); else ct1=ct1+(s[i]-'A'+10)*ksm(n,i); } for(int i=ct+1; i<cd; i++) s2+=s[i]; for(int i=ct+1; i<cd; i++) { if(s[i]>='0'&&s[i]<='9') ct2=ct2+(s[i]-'0')*(1.0/ksm(n,cd2)); else ct2=ct2+(s[i]-'A'+10)*(1.0/ksm(n,cd2)); cd2++; } ct2+=ct1; printf("%.4f\n",ct2); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 ansys fluent计算闪退
- ¥15 有关wireshark抓包的问题
- ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
- ¥15 向数据表用newid方式插入GUID问题
- ¥15 multisim电路设计
- ¥20 用keil,写代码解决两个问题,用库函数
- ¥50 ID中开关量采样信号通道、以及程序流程的设计
- ¥15 U-Mamba/nnunetv2固定随机数种子
- ¥15 vba使用jmail发送邮件正文里面怎么加图片
- ¥15 vb6.0如何向数据库中添加自动生成的字段数据。