UVa 11549 - Calculator Conundrum(计算循环节)

使用 KaKs Calculator 计算 KaKs 的衍生问题解答 1 是否需要去除 gaps 和终止密码子 KaKs Calculator 的操作文档写着会去除 gaps 和终止密码子: 当然,强迫症的我还是用数据测试了一下,确认他们是否会自动去除 gaps 和终止密码子。 1.1 测试是否自动去除终止密码子 带有终止密码子(TAG)的文件test.fa: 没有终止密码子(TAG)的文件testremoveTAG.fa: 带有终止密码子(TAG)的文件test.fa得到的结果如下: 没有终止密码子(TAG)的文件testremoveTAG.fa得到的结果如下: 阅读详情

CALCULATOR CONUNDRUM

Alice got a hold of an old calculator that can display n digits. She was bored enough to come up with the following time waster.

She enters a number k then repeatedly squares it until the result overflows. When the result overflows, only then most significant digits are displayed on the screen and an error flag appears. Alice can clear the error and continue squaring the displayed number. She got bored by this soon enough, but wondered:

“Given n and k, what is the largest number I can get by wasting time in this manner?”

Program Input

The first line of the input contains an integert (1 ≤ t ≤ 200), the number of test cases. Each test case contains two integersn (1 ≤ n ≤ 9) and k (0 ≤ k < 10n) wheren is the number of digits this calculator can display k is the starting number.

Program Output

For each test case, print the maximum number that Alice can get by repeatedly squaring the starting number as described.

Sample Input & Output

INPUT

2
1 6
2 99
OUTPUT
9
99

Calgary Collegiate Programming Contest 2008

 

经验教训:思考问题的解决方法前,先要根据已知条件推断出问题的特点和性质。例如本题中,计算器能够显示的数字最多是n位,所能表示的数字的个数是有限的,那么按照对k求平方,然后取前n位数的方法,重复下去,总有一个时候,出现一个重复的数,这个数就是循环节。

//利用STL中的set来寻找循环节
#include <iostream>
#include <cstdio>
#include <set>
#include <cmath>
using namespace std;

//#define LOCAL

#ifdef LOCAL
#define TYPE __int64
#else
#define TYPE long long
#endif

int HighNDigits(int n, TYPE k)
{
	int len = floor(log10(k)) + 1;
	if (len > n)
	{
		len -= n;
		int m = 1;
		while (len-- != 0)
		{
			m *= 10;
		}
		return (int)(k / m);
	}
	return (int)k;
}

int main(void)
{
	int ncases;
	cin >> ncases;
	while (ncases-- != 0)
	{
		int n, k;
		cin >> n >> k;
		int max = k;
		set<int> s;
		while (s.find(k) == s.end())
		{
			s.insert(k);
			if (k > max)
			{
				max = k;
			}
			k = HighNDigits(n, (TYPE)k*k);
		}
		cout << max << endl;
	}
	return 0;
}


 

//Floyd判圈算法
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

//#define LOCAL

#ifdef LOCAL
#define TYPE __int64
#else
#define TYPE long long
#endif

int HighNDigits(int n, TYPE k)
{
	int len = floor(log10(k)) + 1;
	if (len > n)
	{
		len -= n;
		int m = 1;
		while (len-- != 0)
		{
			m *= 10;
		}
		return (int)(k / m);
	}
	return (int)k;
}

int main(void)
{
	int ncases;
	cin >> ncases;
	while (ncases-- != 0)
	{
		int n, k;
		cin >> n >> k;
		int k1 = k, k2 = k, max = k;
		//k1每次向前走一步,k2每次向前走两步,如果存在循环,
		//k2最终会与k1相遇,这时k2已经走过了所有的数字,求出max即可
		do
		{
			k1 = HighNDigits(n, (TYPE)k1*k1);
			k2 = HighNDigits(n, (TYPE)k2*k2);
			if (k2 > max) max = k2;
			k2 = HighNDigits(n, (TYPE)k2*k2);
			if (k2 > max) max = k2;
		} while (k2 != k1);
		cout << max << endl;
	}
	return 0;
}


 

最新Mamba环境配置教程:从CUDA到causal-conv1d的完整安装流程 本文提供最新Mamba环境配置教程,涵盖从CUDA到causal-conv1d的完整安装流程。针对深度学习领域的长序列处理需求,详细指导如何正确配置CUDA工具链、安装PyTorch及关键依赖causal-conv1d,解决常见报错问题,并验证mamba-ssm集成效果。 阅读详情

相关推荐

【QT+PCL】串口读取单线激光雷达数据并在QVtkWidget组件中实时刷新(一)

(本文主要记录开发过程以及遇到的困难及解决方式)

2301_76329543的博客 3067

(PTA)习题6-7 简单计算器 (20分)

模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。 输入格式: 输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。 输出格式: 在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。 输入样例: 1+2*10-10/2= 输出样例: 10 实现代码...

Ohh_ckx的博客 5393

STM32H7B0VBT6使用Free RTOS配置SD卡+Fatfs文件管理系统

STM32H7B0VBT6使用Free RTOS配置SD卡+Fatfs文件管理系统,记录配置过程

Jack的小窝 5942

倒数的循环节

单位分数指分子为1的分数。分母为2至10的单位分数的十进制表示如下所示:1/2= 0.5 1/3= 0.(3) 1/4= 0.25 1/5= 0.2 1/6= 0.1(6) 1/7= 0.(142857) 1/8= 0.125 1/9= 0.(1) 1/10= 0.1这里0.1(6)表示0.166666…,括号内表示有一位循环节。可以看出,1/7有六位循环节。找出正整数d < 100

弓一的博客 2047

nRF52840 低功耗蓝牙开发指南:从硬件架构到物联网应用实战

本文深入解析nRF52840低功耗蓝牙芯片的硬件架构与开发实践,涵盖从开发环境搭建到BLE协议栈开发的详细指南。通过实战案例分享低功耗优化技巧,帮助开发者高效实现物联网应用,特别适合智能家居和工业场景。

d3e4f的博客 416

FOC项目知识点总结三 | 完全搞懂 Clarke 与 Park 变换(附动图,仿真文件以及详细讲解数学推导过程)

本文目的,最终可以完整推算两种变换 Clarke 变换 首先先看我们需要用到的两种坐标系 1. 自然坐标系 abcabcabc 我们知道,通过三相逆变电路,我们可以画出一个自然坐标系 abcabcabc ,即三相电压的坐标系,通入的电流在这三轴坐标系中变化: 将三个矢量相加合并在一起就如下图所展现: 使用三个坐标轴来表示十分的麻烦与不直观,因为其是非正交的,于是乎我们想要将其转化成使用两个正交的坐标轴来表示,于是乎便有了 Clarke变换。 Clarke 变换的作用: 将基于三轴二维的定子静止坐标系的各

Wilson Huang的博客 3万+

C语言 循环结构实现可连续使用的计算器

编程入门

m0_73599439的博客 3976

从MC到DC:三维重建算法的核心原理与实战对比

本文深入对比了三维重建领域两大经典算法Marching Cubes(MC)与Dual Contouring(DC)的核心原理与实战表现。MC算法原理直观、实现简单,但存在特征丢失和二义性问题;DC算法通过求解二次误差函数(QEF)和利用法向量信息,能更好地保留模型的尖锐特征,但计算更复杂。文章结合医学影像处理实例,为开发者根据速度、精度和特征保真度需求选择合适算法提供了清晰指南。

weixin_29251131的博客 1032

计算器循环版

计算器循环版

微笑(*^__^*)秀秀 475

一套C#接口通吃安川/发那科/库卡:工业机器人统一控制框架设计与产线踩坑实录

我们把机器人的通用能力抽象为接口,涵盖连接、运动、IO、寄存器、状态、报警六大类能力,所有品牌适配器都必须实现这个接口。/// 工业机器人统一控制接口// 基础连接// 运动控制// IO与寄存器// 状态与报警// 事件工业机器人统一控制框架的本质,不是把所有品牌的功能都做平,而是找到通用能力的最大公约数,通过分层抽象把品牌差异隔离在底层。上层业务只关注工艺和流程,不需要关心机器人是什么品牌、用什么SDK、通信协议是什么。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 402

【图像去噪】论文精读:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image

论文题目:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image —— FM2S:单噪声图像自监督荧光显微镜去噪arXiv 2024!显微图像去噪!通过可视化详细的细胞结构和生物过程,荧光显微镜具有显着先进的生物学研究。然而,由于难以精确建模固有噪声和获取干净图像进行训练,这种图像去噪任务往往面临挑战,这限制了大多数现有方法。在本文中,我们提出了一种有效的。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 408

GPB | KaKs_Calculator 3.0:计算编码与非编码序列的选择压力

近日,Genomics, Proteomics & Bioinformatics在线发表了中国科学院北京基因组研究所(国家生物信息中心)章张研究员题为“ KaKs_Calculator 3.0: Calculating Selective Pressure on Coding and Non-coding Sequences”的应用说明文章。我们的“要文译荐”...

刘永鑫的博客——宏基因组公众号 4796

【unity游戏开发入门到精通——通用篇】Post Processing 后处理插件Post-process Volume 和 Volume最全基础使用说明

之前我已经实现了不少后处理功能,本文其实就是将他们归类整理,以便更好的查找和理解。在Unity中,后处理(Post-Processing)是在相机所捕捉的图像上应用一些特殊效果的过程,后处理会让图像视觉效果更好(前提是做的好)。这些效果的范围有非常细微的颜色调整,也包括整体的美术风格的大修,可以让场景看起来更加真实或风格化,或者只是变得更好看。就像我们都会用手机拍照,但很多时候我们拍的原始的相片都打不到我们想要的效果。比如照片可能亮度不够,颜色不饱和或者对比度不好等。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 7896

UVA11549 Calculator Conundrum【循环节】

Alice got a hold of an old calculator that can display n digits. She was bored enough to come up with the following time waster.     She enters a number k then repeatedly squares it until the result overflows. When the result overflows,

海岛Blog 369

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Calculator Conundrum【模拟+循环节】

题目链接 uva - 11549 题意:给出位数上限N,当前数初值K,每次我们可以使得K变成K*K,然后呢,如果新的K超过了位数,取前N位,问最大的K是多少? 思路:很明显的,这最后会产生循环节,因为它取的方式是有迹可循的,所以用一个办法存一下循环节就可以了。 #include <iostream> #include <cstdio> #include <cmath> #include <string> #include <cstring..

既然弱小,就只顾变强就是了 308

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

UVA11549 Calculator Conundrum

休闲题

ACoder 219

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

例题1.19 老式计算器 Calculator Conundrum UVA - 11549 Floyd判圈法

传送门 题目大意:一个老式计算器,只能显示n位,于是输入一个整数k,一直平方,如果溢出,只显示前n位。然后这个n位数继续平方,所有的数中输出最大的那个。 解题思路:由题目可知一定有无限循环。因此只要找到循环节即可。标记一下是否出现过,如果出现过那么平方以后结果是一样的。 AC代码: #include #include #include #include #include

sky的博客 556

UVA 11549 Calculator Conundrum Floyd判圈算法 Brent判圈算法 相关性质及证明

简介了 Floyd判圈算法 Brent判圈算法 的 相关性质及证明

Brassica_的菜园 1569

uva 11549 Calculator Conundrum

uva 11549 题意:你拥有一个老式计算机,它只能显示n为数字,有一天你输入数字k,接着一直平方下去,在这个过程中如果数字长度大于n,那么截取前n个数形成一个新的数k,再用这个新的数k一直平方下去,那么这个过程中能显示的最大数字是多少。 思路:在这个过程如果出现了以前出现过的数,那么从第一个开始到这个数就是一个循环节,后面的也与这个节一模一样,因为都是针对一个数字执行同一种操作。 ...

weixin_33829657的博客 100

UVA 11549 Calculator Conundrum

大意略。 思路:可以发现有循环节,之后在循环节中找最大的即可,可过STL或者哈希表来判重,另一种巧妙的方法是通过Floyd判圈算法来实现。 通过这题熟悉了C++的stringstream和Floyd判圈算法。 哈希表: #include #include #include #include #include #include #include

Wall_F的专栏 1048

Calculator Conundrum UVA - 11549(set或Floyd判圈法)

Calculator Conundrum UVA - 11549 题意:有个老式计算器,每次只能记住一个数字的前n位。现在输入一个整数k,然后反复平方,一直做下去,能得到的最大数是多少。例如,n=1,k=6,那么一次显示:6,3,9,1... 思路:这个题一定会出现循环,所以一个个模拟,遇到相同的就再之前所有数中找最大的输出即可。 怎么判断遇到相同的呢?如果装在数组里一一比

codeswarrior的博客 330

UVa 11549 - Calculator Conundrum

題目:計算k^2^m中,前n位構成的最大數字。 分析:數論,循環。找尋環節不斷的計算k^2^m和k^4^m相等時即為循環節。 說明:也可以使用map檢測循環╮(╯▽╰)╭。 #include long long first_n_digit(long long a, int n) { long long b = 1LL; for (int i = 0; i < n; ++ i) b

小白菜又菜 672

UVA 11549 Calculator Conundrum Floyd判圈

题目链接: 题意: 输入n k,表示计算器能显示n位数字,初始有一个数字k 每次操作 k = k^2, 若超出n位则截取前n位。 求能获得的最大数字。 思路: 首先我们能判断这个操作一定存在循环。 那么如何终止循环,利用Floyd判圈法 让两个循环child1和child2刚开始都为k,然后child1每次变换一次,child2每次变换2次; 这样当child1再次等

九野的博客 1379

uva 11549 Calculator Conundrum(Floyd 判圈法 和 stringstream的应用)

/*题意就是给出整数n和k n表示这个计算器能显示的位数 k表示要计算的数字 要算k的平方 结果取高n位 再平方 再取高n位 求这个过程最大的值是多少 那么这个过程必然是循环的 stringstream虽然慢 但是一种不错的方法 还有floyd判圈法 就是两个小孩 一个速度是另一个的两倍 当第一个小孩跑了n步 也就是一个循环节的时候 第二个已经跑了2n 两个循环节 这时候他俩相等了 都等于初始的那

百度啊百度 631

KaKs_Calculator.py

如果未全局安装,可将 KaKs_Calculator 替换为完整路径(如 “/path/to/KaKs_Calculator”)。​输入文件:需要将每对基因的比对序列保存为 .axt 格式文件,并放置在 axt_files 文件夹中。​Ks=0 或 Ka/Ks=NaN:可能由于序列高度相似或非同义突变位点过少导致,建议检查数据质量。确保已安装 KaKs_Calculator 2.0 并将可执行文件路径加入系统环境变量。​运行报错:检查输入文件格式是否正确,或尝试重新安装 KaKs_Calculator。

SUMPLUSS的博客 659

循环节长度

题目描述 从整数n开始,如果n是偶数 ,把它除以2;如果n是奇数,把它乘 3 加 1 ;用新得到的数字重复上述步骤,直到 n=1 时停止; 例如 :n = 22 时,该算法生成的序列是 22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1 对于给定的 n ,该序列的元素(包括1)个数被称为 n 的循环节长度,在上述例子中,22 的循环节长度为16 ,输入 i 和 j ,你的任务是计算 i 到 j (包含 i和 j )之间的整数中,循环节长度的最大值 样例输入: 1 10 1

qq_46056826的博客 1288
上一篇: UVa 10382 - Watering Grass(贪心算法,区间覆盖问题)
下一篇: Redhat Linux 6.4下安装Oracle 10g问题总结
庞老板
博客等级 码龄15年 127粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庞老板

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值