大整数问题

简介:
题目描述:有一个k(1≤k≤80)位的十进制正整数n,设计一个程序,找到满足条件:P3+ P2+3P≤n的P的最大值。

测试用例:

输入:

1000000000000001000000000000003000000000000001

输出:

100000000000000

复制代码
#include <iostream>
#include <string>
using namespace std;
#include "decnum.h"

decnum n,p;
int k;
char succ(char num)
{//后继数字
    if (num=='9')
    {
        num = '0';
    }
    else
        ++num;
    return num;
}
char pred(char num)
{//前一个数字
    return --num;
}
bool IsOk(const char* temp,int size)
{//判断是否当前值符合条件
    decnum num(temp,size);
    decnum sum = pow(num, 3)+pow(num,2)+(num*3);
    if (sum>n)
    {//太大了
        return false;
    }
    return true;
}

void search()
{
    char* temp = new char[k];
    int i;
    //初始化都是0
    for (i=0;i<k;++i)
    {
        temp[i] = '0';
    }
    temp[i] = '\0';
    for (i=0;i<k;++i)
    {
        do
        {
            //尝试这一位
            temp[i] = succ(temp[i]);
            if (temp[i]=='0')
            {//此位置从0到9都尝试过了
                break;
            }
        }
        while(IsOk(temp,k));
        //回退到前一位合法值
        temp[i] = pred(temp[i]);
    }
    //输出结果
    p = decnum(temp,k);
    cout<<p<<endl;
}
int main()
{
    string line;
    getline(cin,line);
    n = decnum(line.c_str(), line.length());
    k = line.length();//位数
    search();
    cout<<n<<endl;
    return 0;
}
复制代码


本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2008/11/17/1335239.html,如需转载请自行联系原作者
目录
相关文章
|
语音技术 Python
在语音信号处理中,预加重
在语音信号处理中,预加重
1290 2
|
5月前
|
人工智能 边缘计算 缓存
最新软件技术全景解读——AI基础设施(第二篇)
教程来源 https://zlpow.cn/category/software-apps.html 2025年起,AI基础设施重心转向推理侧,算力瓶颈凸显;“云端训练+边缘推理”协同成主流,“超节点”架构破集群限制。算力调度迈向价值导向,训推一体、全国一张网、异构协同加速落地。模型架构多元化突破Transformer范式,国产大模型展现颠覆潜力。边缘智能崛起,2030年半数推理将本地化。
|
机器学习/深度学习 存储 人工智能
三问一图万字拆解DeepSeek-R1:训练之道、实力之源与市场之变
本文是作者基于自己的学习经历重新组织的一篇更易于初心者理解的关于DeepSeek的文章,也可以说是作者阶段性的学习笔记。
873 43
三问一图万字拆解DeepSeek-R1:训练之道、实力之源与市场之变
|
10月前
|
传感器 人工智能 供应链
RFID助力畜牧养殖从个体溯源到全链管理的变革
RFID技术通过电子耳标、脚环等载体,实现畜禽个体精准识别与全生命周期管理,广泛应用于身份建档、智能饲喂、疫病预警、溯源监管及设备管控,推动畜牧养殖向智能化、数据化转型,助力降本增效、保障食品安全。
|
9月前
|
SQL 安全 JavaScript
黑名单和白名单
应用内防御SQL注入主要有黑名单和白名单两种输入验证方法。黑名单过滤已知恶意字符,易实现但防护有限;白名单仅允许预定义的合法字符,更安全有效。应根据输入类型定制规则,并结合警报机制应对异常输入,确保及时发现潜在攻击或误判。客户端验证可提升体验,但不可依赖,服务端验证必不可少。
|
12月前
|
Java API 开发工具
灵码产品演示:软件工程架构分析
本演示展示灵码对复杂软件项目的架构分析与文档生成能力。通过Qwen3模型,结合PlantUML,自动生成系统架构图、微服务时序图,并提取API接口文档,实现高效、智能的代码理解与文档输出。
666 5
|
12月前
|
消息中间件 canal 缓存
缓存与数据库一致性终极指南:从入门到放弃?不,到精通!下
本文探讨缓存一致性难题,从延时双删到重试机制,分析同步重试、异步重试、消息队列补偿及Binlog监听(Canal)等方案,结合优缺点与适用场景,最终提出根据业务需求权衡一致性与性能,选择合适策略。
|
人工智能 数据可视化 决策智能
京东零售重磅开源 | OxyGent:像搭乐高一样组装AI团队,实现群体智能
京东零售Oxygen团队正式开源发布多智能体协作框架——OxyGent。这一创新框架致力于帮助开发者高效组装多智能体协作系统,实现智能体间的无缝协作、弹性扩展与全链路可追溯。推动人工智能从“单点突破”迈向“群体智能”时代。
892 0
|
存储 算法 安全
Golang 实现对配置文件加密
Golang 实现对配置文件加密
|
Nacos Docker 容器
The container name "/nacos" is already in use by container
The container name "/nacos" is already in use by container
769 4