bzoj1263
2024-08-20 02:58:08
观察可得,最大的拆分方法是尽量拆成3,特殊的,如果最后剩下了1,那么就把3+1变成2+2
然后高精度计算即可
var s2,s3,i,n,l:longint;
a:array[..] of longint; procedure mul(x,m:longint);
var i,j,c,y:longint;
begin
for i:= to m do
begin
inc(l);
c:=;
for j:= to l do
begin
y:=a[j]*x+c;
c:=y div ;
a[j]:=y mod ;
end;
while a[l]= do dec(l);
end;
end; begin
readln(n);
if n mod = then s3:=n div
else if n mod = then
begin
s3:=(n-) div ;
s2:=;
end
else if n mod = then
begin
s3:=(n-) div ;
s2:=;
end;
a[]:=;
l:=;
mul(,s3);
mul(,s2);
writeln(l);
for i:=l downto l- do
begin
if i<= then break;
write(a[i]);
end;
writeln;
end.
最新文章
- 【SAP业务模式】之ICS(四):组织单元的配置
- Git 少用 Pull 多用 Fetch 和 Merge
- css垂直居中方法盘点
- js时间处理函数
- 使用本地phpmyadmin管理远程数据库
- 【linux】awk的使用
- C++中static的全部作用
- c#利用WebClient和WebRequest获取网页源代码
- python高级编程 编写一个包1
- 最全面 Nginx 入门教程 + 常用配置解析
- CLR via C# 阅读笔记
- C#_会员管理系统:开发七(用户分类)
- 编译gRPC
- xUtils使用详细介绍
- python学习之数字
- Java工程师成神之路思维导图
- 最小生成树之Kruskal(克鲁斯卡尔)算法
- CSS实现动画特效导航栏
- Ubuntu---grep
- JS Web的Flex弹性盒子模型