BJTU 锻炼计划

2023-10-25 01:30
文章标签 计划 锻炼 bjtu

本文主要是介绍BJTU 锻炼计划,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题面描述

老顽童是一个热爱运动的人,每天都有小顽童来和他一起锻炼。为了让锻炼更有成效,他想要制定一份锻炼计划,让第 n 天的训练量要等于第 n 个正回文数 ( 第 1 个正回文数是 1) 。

老顽童已经打印好了计划表,但是他的计划表中有一些日子被遗漏了,他又不想重新计算,你可以帮他解决这个问题吗?

如果一个数的各位数字反向排列后仍然等于其本身,则把这样的数称为回文数 (palindrome number) ,如 12321 是回文数, 1232 不是回文数。

输入数据

第一行有一个整数 t (1 ≤ t ≤ 100000) ,表示有 t 组数据。

每组数据只有一行,为一个整数 n (1 ≤ n ≤ 400000) ,表示第 n 天。

输出数据

对于每组数据,输出一个整数,表示对应的训练量。

样例输入

5
1
2
3
12
23

样例输出

1
2
3
33
141

解题思路

      自然序列中的有序的第N个回文数,400000这个还是蛮大的。在一切循环都会超时的情况下,采用打表的方式,获取有序回文数的构成位数。经过规律探索发现,//*说明:第N个回文数是个num位数,奇数位前半部分front_num =(num+1)/ 2,偶数位前半部分behind_num =num / 2。定位打表的位置后,求出num位数的序号,dif = n - arr[num-1] 。*//

        回文数的前半部分 == {pow(10 , front_num-1)或者}  pow(10 , front_num-1)  + dif - 1 。

        示例:第333个回文数是23432。

                   先打表定位:198 < 333 < 1098 ;表示一个num= 5位数。而且arr[5-1] = 198。

                   那么,dif = 333 - 198 = 135 。

                   那么,前半部分front_num = (5+1)/ 2 = 3 。

                   总述:front = pow(10 , 2) + dif - 1 = 100 + 135 - 1 = 234

         另外:dif = n - arr[num] = 333 - 1098 =  -765 

                   front = pow(10 , front_num)  + dif - 1 = pow(10 , 3) + (-765) - 1 = 1000 - 765 - 1 = 234

        代码一与代码二的原理基本一致,打表求位置。需要注意的是:int整型的长度,求出前半部分front后,直接输出即可,紧接着输出后半部分behind。不要front+behind相加后再输出,会造成超出范围Wrong Answer 。

 

 

程序代码一

#include <iostream>
using namespace std;
void Huiwen(int n){int s = 9 , ans = 1 ;while(n > s * 2)// 判断第n个数有多少位,原理等同于打表求值{n -= s * 2 ;s *= 10 ;ans *= 10 ;}ans += (n % s == 0 ? s : n % s) - 1 ;// a>b?a:b 说明:a>b为true返回a,否则bcout << ans ;// 输出前半部分if(n - s <= 0)// n个位数为奇数,去掉最后一位ans /= 10 ;while(ans){cout << ans % 10 ;//输出后半部分ans /= 10 ;}cout << endl ;
}
int main(){int t ;// t组数据cin >> t ;for (int i = 0 ; i < t ; i++){int n ;cin >> n ;Huiwen(n) ;}return 0 ;
}

 

 

程序代码二 

图中打表的代码,完整版如下

 

int arr[12] = {0 , 9 , 18 , 108 , 198 , 1098 , 1998 , 10998 , 19998 , 109998 , 199998 , 1099998} ;
// 位数表 0-1-2-3-4-5-6-7-8-9-10-11

这篇关于BJTU 锻炼计划的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/279123

相关文章

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Oracle数据库执行计划的查看与分析技巧

《Oracle数据库执行计划的查看与分析技巧》在Oracle数据库中,执行计划能够帮助我们深入了解SQL语句在数据库内部的执行细节,进而优化查询性能、提升系统效率,执行计划是Oracle数据库优化器为... 目录一、什么是执行计划二、查看执行计划的方法(一)使用 EXPLAIN PLAN 命令(二)通过 S

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

Claude Enterprise推出计划

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/ 今天推出的Claude Enterprise计划,专为企业打造安全的

为备份驱动器制定备份计划:维护数据的3大方法

时间:2014-02-26 14:49 来源:网管之家 字体:[大 中 小]   您可能已经对您的电脑进行了备份,但其实这样还是远远不够的,其并非如您所认为的那样安全。您企业备份驱动器上的文件可能与您的主系统上的文件一样,容易受到灾难的影响。根据最近流行的恶意软件CryptoLocker的感染途径显示,连接到PC的外置驱动器——辅助硬盘驱动器,例如,用于备份的外部USB硬盘驱动器,可以像

基于开源链动 2 + 1 模式、AI 智能名片与 S2B2C 商城小程序的用户忠诚度计划

摘要:本文深入探讨了在商业环境中执行用户忠诚度计划的创新途径。通过整合开源链动 2 + 1 模式、AI 智能名片以及 S2B2C 商城小程序等先进元素,从提供福利、解决问题和创造赚钱机会三个核心方面展开详细阐述。研究表明,这些新技术和新模式的有机结合,能够为企业打造更具吸引力和影响力的用户忠诚度计划,从而实现商业效益的最大化与可持续发展。 一、引言 在当今竞争激烈且市场环境快速变化的时代,

[置顶] 2014训练计划进阶版

动态规划: 区间dp,树状dp,数位dphdu3555, sgu258, sgu390  队列优化: zoj3399 最小表示法的状态压缩DP: spoj2159  专题链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=38881#overview 专题链接: http://acm.hust.edu.cn/vjudg

[置顶] 2014训练计划

每个专题结束后会有5小时的专题赛~ 1、hustOJ目前支持谷歌、火狐浏览器等部分浏览器。 2、欢迎吐槽~ 3、推荐该阶段用书(以下具体算法实现多数可在此书中找到详解):算法竞赛入门经典之训练指南(刘汝佳) 4、题解报告:专题中的题目多是经典题目,百度搜索即有详细解答~ 5、专题相关知识点红字标出,建议先百度红字部分,有助于专题学习~ 6、专题时间会在"ACM 今天你AC了吗?"(12

Windows 一键定时自动化任务神器 zTasker,支持语音报时+多项定时计划执行

简介 zTasker(详情请戳 官网)是一款完全免费支持定时、热键或条件触发的方式执行多种自动化任务的小工具,支持win7-11。其支持超过100种任务类型,50+种定时/条件执行方法,而且任务列表可以随意编辑、排列、移动、更改类型,支持任务执行日志,可覆盖win自带的热键,同时支持任务列表等数据的备份及自动更新等。 简言之,比微软系统自带的任务计划要强好几倍,至少灵活性高多了,能大幅提高电脑使