当前位置:网站首页>OJ 1451 数字游戏
OJ 1451 数字游戏
2022-07-28 05:26:00 【JETECHO】
描述
给定一个整数n。
您可以使用这个数字执行以下任意操作(可能是零)次数:
如果n能被2整除,则用n/2代替n;
如果n能被3整除,则用2n/3代替n;
如果n能被5整除,就用4n/5代替n。
例如,可以使用第一个操作将30替换为15,使用第二个操作将30替换为20,或者使用第三个操作将30替换为24。
你的任务是找出从n中得到1所需的最小步数,或者说这是不可能做到的。
您必须回答独立于q的查询。
在新行中打印每个查询的答案。如果无法从n中得到1,则打印-1。否则,打印所需的最小步数。
输入
输入的第一行包含一个整数q(1≤q≤1000)——查询的数量。
接下来的q行包含查询。对于每个查询,都有一个整数n(1≤n≤1018)。
输出
每行中打印每个查询的答案。如果无法从n中得到1,则打印-1。否则,打印所需的最小步数。
数字游戏
描述
给定一个整数n。
您可以使用这个数字执行以下任意操作(可能是零)次数:
如果n能被2整除,则用n/2代替n;
如果n能被3整除,则用2n/3代替n;
如果n能被5整除,就用4n/5代替n。
例如,可以使用第一个操作将30替换为15,使用第二个操作将30替换为20,或者使用第三个操作将30替换为24。
你的任务是找出从n中得到1所需的最小步数,或者说这是不可能做到的。
您必须回答独立于q的查询。
在新行中打印每个查询的答案。如果无法从n中得到1,则打印-1。否则,打印所需的最小步数。
输入
输入的第一行包含一个整数q(1≤q≤1000)——查询的数量。
接下来的q行包含查询。对于每个查询,都有一个整数n(1≤n≤1018)。
输出
每行中打印每个查询的答案。如果无法从n中得到1,则打印-1。否则,打印所需的最小步数。
输入样例 1
7
1
10
25
30
14
27
1000000000000000000
输出样例 1
0
4
6
6
-1
6
72
题目要求通过各种运算最后使数据变为1,如果一个数经历的多次变化之后成为一个不能被2,3,5整除的数那么这个数据就不能变成1,否则为了步数可能的少,那么削减也要和尽可能大,削减从小到大为1/2,2/3,4/5,然后利用这个规律类推即可。
#include <iostream>
using namespace std;
long long MIN;
void doit (long long a,int cont)
{
if(a%2==0)
{
if(a/2==1)
{
if(MIN>cont)
MIN=cont;
}
else
doit(a/2,cont+1);
}
else if(a%3==0)
{
if(2*a/3==1)
{
if(MIN>cont)
MIN=cont;
}
else
doit(2*a/3,cont+1);
}
else if(a%5==0)
{
if(4*a/5==1)
{
if(MIN>cont)
MIN=cont;
}
else
doit(4*a/5,cont+1);
}
else
MIN=-1;
}
int main()
{
long long n,a;
while(cin>>n)
{
while(n--)
{
MIN=0x3f3f3f;
cin>>a;
if(a==1)
cout<<"0"<<endl;
else
{
doit(a,1);
cout<<MIN<<endl;
}
}
}
return 0;
}
边栏推荐
- 【C语言】自定义结构体类型
- 刷题记录----反转链表(反转整个链表)
- 藏宝计划TPC系统开发Dapp搭建
- 气传导耳机哪个品牌比较好、这四款不要错过
- Solve the problem that the memory occupation is higher than that of the application process
- Find the network address and broadcast address of the host according to the IP address and subnet mask
- MySQL join skills
- 相对路径和绝对路径
- suger BI 创建任务
- QT implementation outputs relevant information to log file
猜你喜欢

error: redefinition of ‘xxx‘

Several methods of QT setting loading interface

【C笔记】数据类型及存储

What's a good gift for your girlfriend on the Chinese Valentine's day in 2022? Practical and beautiful gift recommendation

QT custom sliding button (beautiful and easy to use)

Filter

Icc2 (III) clock tree synthesis

In vscade, the source file "adafruit_gfx.h" cannot be opened“
![OpenGL development environment configuration [vs2017] + frequently asked questions](/img/29/cefa8601310caf56ae9605cbf7fbbf.png)
OpenGL development environment configuration [vs2017] + frequently asked questions

qt设置加载界面的几种方法
随机推荐
Hugging face 的问题记录 I
What's a good gift for your girlfriend on Chinese Valentine's day? Boys who can't give gifts, look!
Relative path and absolute path
小程序自定义组件-数据,方法和属性
小程序创建组件
微信小程序自定义编译模式
【C语言】动态内存管理
QT custom sliding button (beautiful and easy to use)
2022-06-07 VI. log implementation
2022-07-17 达梦数据库安装
C语言的编译和预处理
多个ics日历合并成单个ics日历
气传导耳机哪个品牌比较好、这四款不要错过
详解安装msdn 2015及其注意事项
MySQL join skills
Listener
2022-06-07 ResponseBodyAdvice导致Swagger出现弹框问题
【C语言】自定义结构体类型
suger BI 创建任务
转义字符笔记