当前位置: 首页 > article >正文

P1045 麦森数

P1045 [NOIP2003 普及组] 麦森数

P1045 麦森数

输入n,求出 2 p − 1 2^p-1 2p1 位数和500个尾数

思路

运用对数转换 n ∗ ( l o g 10 ( 2 ) ) + 1 n*(log10(2))+1 n(log10(2))+1 即位数。

只需要保留后500,可以用一个数组,不断更新。初始化数组 a [ 0 ] = 1 , 其余为 0 a[0]=1,其余为0 a[0]=1,其余为0.

2 很特殊,可以直接用 <<

  • 左移P,数据溢出
  • 每次移动小,时间复杂度高

所以,每次移动10位,可以避免这个问题(换成其他也可以)

代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int a[550]={1};
signed main()
{
	IOS
	int n;
	cin>>n;
	int p=n*(log10(2))+1;
	cout<<p<<'\n';
	for(;n>0;n-=10)
	{	int f=0;
		int h=min(n,(long long)10);
		for(int i=0;i<=499;i++)
		{
			a[i]<<=h;
			a[i]+=f;
			f=a[i]/10;
			a[i]%=10;
		}
	}
	a[0]-=1;
	for(int i=1;i<=10;i++)
	{
		for(int j=549-50*i;j>499-50*i;j--)
		{
			cout<<a[j];
		}cout<<'\n';
	}	
}

http://www.kler.cn/a/289459.html

相关文章:

  • LeetCode【0027】移除元素
  • DAY6 线程
  • 【Python】爬虫通过验证码
  • 三种单例实现
  • LeetCode【0018】四数之和
  • springboot参数校验
  • sql92语句与sql99语法的区别
  • MySQL——隔离级别及解决方案
  • 停止和删除所有 Docker 容器的详细指南
  • Unity面向对象补全计划 之 List<T>与class(非基础)
  • CMake构建学习笔记12-libzip库的构建
  • ArkUI-状态管理-@Provide、@Consume、@Observed、@ObjectLink
  • 9\1 numpy基础(二)
  • vue2表格显隐列的封装【升级缓存版】
  • 文件包含漏洞PHP伪协议利用方法
  • Kaggle竞赛:Rossmann Store Sales第66名策略复现
  • Java后端面试题(微服务相关)(day12)
  • GPU环境配置:1.CUDA、Anaconda、Pytorch
  • 在Linux中使用MySQL基础SQL语句及校验规则
  • 振动分析-23-频域分析之深入理解幅值谱与相位谱的计算过程
  • 【ssh】如何远程连接
  • 小米电视使用adb 卸载自带应用教程
  • 每日刷题(图论)
  • 基于Android Studio的用户行程记录APK开发指南(一):项目基础配置与速通Kotlin
  • unreal engine骨骼绑定重定向实现自定义人物替换游戏中小白人,但是用小白人或者某超人现有的移动等功能再次折腾笔记...
  • 电脑连接公司服务器记住了账户密码,怎么换账户呢?