牛客网上的最后一位

博客围绕牛牛给出数字总和sum,求经过特定操作(每天擦掉数字最后一位并记录所有出现数字求和)的原正整数X展开。介绍了确定X位数,以三位数为例推导计算各数位值的思路,还提及可扩展到四位数及n位数。

题意:牛牛选择了一个正整数X,然后把它写在黑板上。然后每一天他会擦掉当前数字的最后一位,直到他擦掉所有数位。 在整个过程中,牛牛会把所有在黑板上出现过的数字记录下来,然后求出他们的总和sum.
例如X = 509, 在黑板上出现过的数字依次是509, 50, 5, 他们的和就是564.
牛牛现在给出一个sum,牛牛想让你求出一个正整数X经过上述过程的结果是sum.

思路:

  1. 我们要找到一个数x,经过一系列擦掉最后一位操作后,和为564。

  2. 首先要确定x的位数,它一定是三位或两位(如果是四位,结果肯定是四位)。在此我们就假定它是三位数abc(就算最终结果是两位数,那么求出来a=0就可以了)。经过一系列擦操作之后:abc + ab + a = 564,

    即:(a * 100 + b * 10 + c) + (a * 10 + b) + (a) =564;

    即 :111 * a + 11 * b + 1 * c = 564

    我们想要求a、b、c,很简单,a = 564 // 111 = 5("//"表示取整操作)

    此时564 - 111 * 5 = 9。接下来要求b:b = 9//11 = 0

    此时 9 - 0 * 11 = 9。接下来要求c:c = 9//1 = 9

    最终结果5->0->9

  3. 扩展到四位数x,它的形式一定是1111 * a + 111 * b + 11 * c + 1* d = x

    同理扩展到n位数。

#include <iostream>
#include <string>
#include <cmath>
#include<iomanip>
/*
用例:
837592744927492746
对应输出应该为:
-1
你的输出为:
753833470434743470
*/
using namespace std;
long long give(long long len);
int main()
{
    string sum;
    int a[100],top=0;
    long long num_sum=0;
    cin>>sum;
   // cout<<sum.size()<<endl;
    for(int i=0;i<sum.size();i++)
    {
       // int i=12;
        num_sum+=(sum[i]-'0')*pow(10.0,sum.size()-1-i);//break; 
      //  cout<<"i="<<setw(2)<<setfill('0')<<i<<"  "<<num_sum<<endl;
    }//当i=12时发生错误 
   // long long t=num_sum;
    cout<<num_sum;return 0;//为甚麽转化出来的整数是错的
    //sum_size=sum.size();
    for(long long i=sum.size();i>=1;i--)
    {
        a[top]=num_sum/give(i);
        num_sum=num_sum-a[top]*give(i);
        top++;
    }
    cout<<top<<'\n';
    for(int i=0;i<top;i++)
    {
    if(a[i]>=10)
    {
    cout<<-1;return 0;
    }
    }
    for(int i=0;i<top;i++)
    {
    if(a[0]==0) continue;
    cout<<a[i];
    }
}

long long give(long long len)//提供len位1
{
    long long sum=0;
    while(len-->0)
    {
        sum=sum*10+1;
    }
    return sum;
}//837592744927492746

 

转载于:https://www.cnblogs.com/cstdio1/p/10952375.html

内容概要:本文介绍了一个基于冠豪猪优化算法(CPO)的无人机三维路径规划项目,利用Python实现了在复杂三维环境中为无人机规划安全、高效、低能耗飞行路径的完整解决方案。项目涵盖空间环境建模、无人机动力学约束、路径编码、多目标代价函数设计以及CPO算法的核心实现。通过体素网格建模、动态障碍物处理、路径平滑技术和多约束融合机制,系统能够在高维、密集障碍环境下快速搜索出满足飞行可行性、安全性与能效最优的路径,并支持在线重规划以适应动态环境变化。文中还提供了关键模块的代码示例,包括环境建模、路径评估和CPO优化流程。; 适合人群:具备一定Python编程基础和优化算法基础知识,从事无人机、智能机器人、路径规划或智能优化算法研究的相关科研人员与工程技术人员,尤其适合研究生及有一定工作经验的研发工程师。; 使用场景及目标:①应用于复杂三维环境下的无人机自主导航与避障;②研究智能优化算法(如CPO)在路径规划中的实际部署与性能优化;③实现多目标(路径最短、能耗最低、安全性最高)耦合条件下的工程化路径求解;④构建可扩展的智能无人系统决策框架。; 阅读建议:建议结合文中模型架构与代码示例进行实践运行,重点关注目标函数设计、CPO算法改进策略与约束处理机制,宜在仿真环境中测试不同场景以深入理解算法行为与系统鲁棒性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值