HDOJ 4239 - Decoding EDSAC Data 模拟
来源:互联网 发布:ica加权自相关算法 编辑:程序博客网 时间:2024/05/21 06:24
题意:
给了一系列的用操作数转换为17位二进制数的关系..又给出了17位二进制数转化成十进制小数的关系...现在给出操作数..请退出其对应十进制小数.
题解:
这个不恶心..简单题...控制小数位..我使用ssprintf输入到字符串中再调整的...
Program:
#include<iostream>#include<stdio.h>#include<string.h>#include<queue>#include<stack>#include<algorithm>#include<cmath>#include<set>#include<map>#define ll long long#define oo 1<<29#define pi acos(-1.0)using namespace std;char s[45]={"PQWERTYUIOJ#SZK*?F@D!HNM&LXGABCV"},c;int H[300];void PreWork(){ int i; for (i=0;i<32;i++) H[s[i]]=i; H['A']=28,H['S']=12;} int A[30];char ss[30];int main(){ int cases,id,t,x,i; double ans; PreWork(); scanf("%d",&cases); while (cases--) { scanf("%d",&id); do { c=getchar(); } while (c==' '); t=0,x=H[c]; for (i=4;i>=0;i--) if (x&(1<<i)) A[++t]=1; else A[++t]=0; scanf("%d",&x); for (i=10;i>=0;i--) if (x&(1<<i)) A[++t]=1; else A[++t]=0; do { c=getchar(); } while (c==' '); if (c=='F') A[++t]=0; else A[++t]=1; ans=0; for (i=2;i<=t;i++) if (A[i]) ans+=1.0/(1<<(i-1)); if (A[1]==1) ans-=1; sprintf(ss,"%.25f",ans); for (i=20;i>=1;i--) if (ss[i]!='0') break; if (ss[i]=='.') i++; ss[i+1]='\0'; printf("%d %s\n",id,ss); } return 0;}
- HDOJ 4239 - Decoding EDSAC Data 模拟
- HDU_4239_Decoding EDSAC Data(模拟)
- 2011大纽约区域赛试题 Decoding EDSAC Data 解题报告
- HDOJ 4238 - Programming the EDSAC 阅读理解..高精度处理
- HDU 1987 Decoding (模拟)
- UVA 213 Message Decoding 【模拟】
- Decoding 433MHz RF data from wireless switches.
- Codeforces Round #386(Div. 2)B. Decoding【模拟】
- hdoj 4217 Data Structure?
- HDOJ-4217 Data Structure
- [HDOJ 4964] Emmet [模拟]
- 【模拟】 HDOJ 5071 Chat
- HDOJ 5071 Chat 模拟
- HDOJ 4690 EBCDIC 模拟
- HDOJ 1014 模拟
- HDOJ-5211Mutiple(模拟)
- hdoj 5240 Exam 【模拟】
- HDOJ 5353 Average 模拟
- PL/SQL程序单元
- printk的使用-日志等级
- java--I/O流概述
- java--InputStream,OutStream
- java文件流的处理
- HDOJ 4239 - Decoding EDSAC Data 模拟
- java过滤流
- asp.net的微软报表无法打印的解决。
- DNS原理及解析过程分析
- java字符流
- java对象的串行化
- Spring scope详解
- 正割法
- 数据仓库多维建模笔记