NBU 1763
来源:互联网 发布:安装java linux 编辑:程序博客网 时间:2024/05/17 04:49
官方题解还没放出,这里放上我自己的代码仅供参考。
递推公式很简单,观察样例可以得出
A[i][j]=(A[i-1][j-1]+A[i-1][j])/2),但,题目中要求每个数都保留前八位小数,这里的保留前八位并不是指在输出时保留八位小数,而是在运算过程中保留,即递推计算出每个值我们只能取八位小数。
如果直接用double存储值,在输出时截取八位小数会出现误差,input中有数据专门卡这一点。
运算得出结果时,将double值乘1e8转成long long长整型,再除1e8,即可截取运算结果的前八位。
#include <iostream>#include <cstdio>#include <cstring>#define LL long longusing namespace std;const LL mod=1e9+7;const int maxr=1e2+5;const int maxc=15;double v[maxr][maxc];int main(){ int t, m; double n; scanf("%d", &t); for(int cas=1; cas<=t;cas++){ scanf("%lf%d",&n, &m); for(int i=1;i<maxr;i++) for(int j=0;j<maxc;j++) v[i][j]=0; printf("Case %d:\n", cas); v[1][1]=n*1.0; printf("%.8lf\n", v[1][1]); if(1<m) puts(""); for(int i=2;i<=m;i++){ for(int j=1;j<=i;j++){ v[i][j]=(v[i-1][j-1]+v[i-1][j])/2; LL x=v[i][j]*1e8; printf("%.8lf%c", x*1.0/1e8, j==i?'\n':' '); } if(i<m) puts(""); } if(cas<t) printf("\n\n"); } return 0;}
阅读全文
0 0
- NBU 1763
- nbu deassign
- NBU OJ1196
- NBU基础知识
- Euclid NBU 1844
- NBU权限控制
- symantec NBU status 96
- nbu 2429 Transfer stations
- nbu 2428 Risk
- nbu 2427 Pigs
- nbu 2431 星际转移
- nbu 2412 Dice
- nbu学习笔记一
- nbu备份恢复catalog
- Oracle Policy For NBU
- NBU计算机专业期末考试记录
- 一次NBU备份错误诊断
- nokia .nbu 备份文件的恢复
- [2016陕西省赛B] Rui and her functions
- display取值的用法
- mysql主从复制
- JVM初窥: 类文件结构
- POJ1759-Garland
- NBU 1763
- 【wireless】Channel State Information
- 折半查找算法(二分查找算法)
- c运算符优先级
- javascript将json字符串转换为json对象
- ssm
- 星期几
- NYOJ-32组合数(递归实现)
- 未知永远存在。认知0006