YACS 2022年12月月赛 乙组 T2 八进制小数 题解
纪念一下,两件事。
高精板子。
小数部分第一位的数字乘上
加起来就是答案,可是用
这道题的重点是如何算
我们小学就学过,
现在就要想办法凑
但是一个数除以
想办法凑出
得到
还有一个问题,这个
很简单,拿
剩下的就很简单了,上代码:
#include <cstring> #include <iostream> using namespace std; char s[510]; int a[1105], b[1105], ans[3005]; int main () { a[1100] = 1; scanf ("%s", s + 1); int len = strlen (s + 1); for (int i = 1; i <= len; i ++) { for (int j = 1100; j >= 1; j --) a[j] *= 125; for (int j = 1100; j >= 1; j --) { a[j - 1] += a[j] / 10; a[j] %= 10; } if (s[i] != '0') { int t = s[i] - 48, fir; for (int j = 1100; j >= 1; j --) b[j] = a[j] * t; for (int j = 1100; j >= 1; j --) { b[j - 1] += b[j] / 10; b[j] %= 10; if (b[j] != 0) fir = j; } int size = 1101 - fir; int na = 3 * i + 1 - size, nb = fir; while (nb != 1101) { ans[na] += b[nb]; na ++; nb ++; } for (int i = 3000; i >= 1; i --) { ans[i - 1] += ans[i] / 10; ans[i] %= 10; } } } int tmp = 0; for (int i = 3000; i >= 1; i --) if (ans[i] != 0 && !tmp) tmp = i; for (int i = 1; i <= tmp; i ++) cout << ans[i]; return 0; }
分类:
YACS乙组月赛题解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)