Codeforces 858A. k-rounding 数论
来源:互联网 发布:android源码设计模式 编辑:程序博客网 时间:2024/05/24 08:33
题目:
题意:输入n和k,找到一个最小的数,满足末尾有至少k个0和是n的倍数。
最小的情况 ans = n,最大的情况 ans = n*pow(10,k)。
令 k = pow(10,k);
我们发现所有可能的情况就是 ans = n*(k的因子)。
把k的因子从小到大遍历一遍就可以了。
代码:
#include <bits\stdc++.h>using namespace std;typedef long long ll;int main() { ll n,k; cin >> n >> k; k = (ll)pow(10,k); for(ll i = 1;i <= k; i++){ if(k%i == 0 && n*i%k == 0){ cout << n*i << endl; break; } } return 0;}
我在网上看到的另一种方法,想法很不错:
复制代码#include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) #define dep(i,a,b) for(int i=a;i>=b;i--) #define LL long long using namespace std; LL n,k,cnt5=0,cnt2=0; int main() { cin>>n>>k; while(n%5==0&&cnt5<k){n/=5;cnt5++;} while(n%2==0&&cnt2<k){n/=2;cnt2++;} rep(i,1,k)n*=10; cout<<n<<endl; return 0; }
他的做法是把n的因数2和5除掉缩小成一个末尾没有0,且不具备乘以一个数让末尾变成0的数。
然后在n的末尾补上k个0,这个n恰好是符合要求的值。
阅读全文
0 0
- Codeforces 858A. k-rounding 数论
- Codeforces 858A k-rounding
- codeforces 858 A k-rounding(数学)
- codeforces 861A k-rounding
- Codeforces 898A. Rounding
- Codeforces 898 A Rounding
- Codeforces Round #434 k-rounding
- codeforces] ECR19 A. k-Factorization [数论]
- cf434 div.2 A. k-rounding
- CodeForces 351A Jeff and Rounding
- Codeforces Round #451 (Div. 2) A. Rounding
- A. Rounding
- codeforces 351A A. Jeff and Rounding(智商题+枚举)
- codeforces 351A A. Jeff and Rounding(★)
- Codeforces Round #204 (Div. 1) A. Jeff and Rounding
- codeforces 351A Jeff and Rounding(区间枚举)
- 【CodeForces 351A】Jeff and Rounding(思维)
- codeforces 484A Bits 数论
- [BZOJ3884]上帝与集合的正确用法 欧拉函数
- React Native 混合编程 之访问原生API
- Android中公用属性的抽取
- libsamplerate的使用
- 三子棋游戏
- Codeforces 858A. k-rounding 数论
- 基于Flask + MongoDB + Scrapy + ElasticSearch的新闻检索平台(ES+MongoDB环境)
- 北工大菜鸟的AI成长之路从今天开始啦!
- Can't find bundle for base name 包名.xxxx.文件名,locale 语言简称_国家简称
- 【模板】二分查找
- Centos网络防火墙
- pm2 知识
- 一种基于KINECT的摔倒检测方法,全新的特征
- Jdbc连接数据库的步骤