欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

一个数除以6乘以2,经过多少次变成1

程序员文章站 2022-05-01 19:17:07
原题链接:https://codeforces.com/problemset/problem/1374/B题意:有一个数能进行两种操作,除以6乘以2,问经过多少次操作能变成1.若不行则输出-1.解题思路:我们可以统计2和3的因子,再进行判断即可。AC代码:/**邮箱:2825841950@qq.com*blog:https://blog.csdn.net/hzf0701*注:代码如有问题请私信我或在评论区留言,谢谢支持。*/#include#include...

题意:有一个数能进行两种操作,除以6乘以2,问经过多少次操作能变成1.若不行则输出-1.

解题思路:我们可以统计2和3的因子,再进行判断即可。

AC代码:

/*
*邮箱:2825841950@qq.com
*blog:https://blog.csdn.net/hzf0701
*注:代码如有问题请私信我或在评论区留言,谢谢支持。
*/ #include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<string> #include<stack> #include<queue> #include<cstring> #include<map> #include<iterator> #include<list> #include<set> #include<functional> #include<memory.h>//低版本G++编译器不支持,若使用这种G++编译器此段应注释掉 #include<iomanip> #include<vector> #include<cstring> #define scd(n) scanf("%d",&n) #define scf(n) scanf("%f",&n) #define scc(n) scanf("%c",&n) #define scs(n) scanf("%s",n) #define prd(n) printf("%d",n) #define prf(n) printf("%f",n) #define prc(n) printf("%c",n) #define prs(n) printf("%s",n) #define rep(i,a,n) for (int i=a;i<=n;i++)//i为循环变量,a为初始值,n为界限值,递增 #define per(i,a,n) for (int i=a;i>=n;i--)//i为循环变量, a为初始值,n为界限值,递减。 #define pb push_back #define fi first #define se second #define mp make_pair using namespace std; typedef long long ll; typedef long double ld; typedef pair<ll, ll> pll; typedef pair<int, int> pii; const ll inf = 0x3f3f3f3f;//无穷大 const ll maxn = 1e5;//最大值。 //*******************************分割线,以上为代码自定义代码模板***************************************// int t; ll n; int cnt1,cnt2;//统计2的因子数和3的因子数。 int main(){ //freopen("in.txt", "r", stdin);//提交的时候要注释掉 ios::sync_with_stdio(false);//打消iostream中输入输出缓存,节省时间。 cin.tie(0); cout.tie(0);//可以通过tie(0)(0表示NULL)来解除cin与cout的绑定,进一步加快执行效率。 while(cin>>t){ while(t--){ cin>>n; cnt1=0;cnt2=0; while(n%3==0){ n/=3; cnt1++; } while(n%2==0){ n/=2; cnt2++; } if(n!=1){ //说明不仅仅只是包含2和3这些因子,那显然不能。 cout<<"-1"<<endl; } else{ if(cnt1<cnt2){ cout<<"-1"<<endl; } else{ cout<<cnt1+cnt1-cnt2<<endl; } } } } return 0; } 

本文地址:https://blog.csdn.net/hzf0701/article/details/107771227