博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【数学推导】数字变换
阅读量:6085 次
发布时间:2019-06-20

本文共 2039 字,大约阅读时间需要 6 分钟。

题目描述

Alice 给了 Bob 一个数 k,求有多少个数 x,满足:从 x 的某个数位(不能是最后一位)后加一个乘号,运算得到一个数 y,使得 xy=k。

比如:如果 k=123,那么 277 就是一个符合要求的数,因为 2772×77=123。

Bob 觉得这个问题太难了,希望你可以帮他解决。

输入输出格式

输入格式:

一行一个整数 k,意义如上所述。

输出格式:

一行一个整数,表示答案。

输入输出样例

输入样例#1: 
123
输出样例#1: 
3
输入样例#2:
2333
输出样例#2: 
9
输入样例#3: 
999999999
输出样例#3:
34

【题解】: 这个题目也是通过讲评后我才知道这个怎么做的。 首先读一遍题目: 题目需要我们找出所有符合一种 形式的数 以一种形式等于k。 形式的数是指:X = a*(10^t) + b 然后一种形式为: X - a * b = k 根据这个题目我们知道 K 的范围为: 1e9 我们可以枚举 10^t,t = 1,2,3……9. 我们设:t = 10^t。 然后有:a*t-a*b=k 因式分解:(a-1)*(t-b)=k-t 然后通过这个式子进行分析。 1、当k-t<0,不存在a,b,因为左边都是整数。 2、当k-t>0,可以通过根号n枚举所有k-t的因数,然后排序找出对应的a,b。 3、当k-t==0,由于t>b,∴a=1,然后b可以b
1 #include
2 using namespace std; 3 typedef long long ll; 4 ll k,ans,A,B,K,a,b,F; 5 set
Ans; 6 vector
V; 7 int main() 8 { 9 scanf("%lld",&k);10 for(ll t=10 ; t<=INT_MAX ; t*=10 ){11 if( k-t > 0 ){12 K = k-t;13 //printf("%lld %lld \n",t,K);14 for(ll i=1 ; i*i<=K ; i++ ) {15 V.push_back( i );16 if( i*i != K ){17 V.push_back( K/i );18 }19 }20 sort(V.begin(),V.end() );21 V.erase( unique( V.begin(),V.end() ), V.end() );22 for(auto A:V){23 a = A + 1 ;24 b = t - K/A;25 if( b
=0 && a*t + b - a*b == k){26 //cout << a*t + b << endl ;27 Ans.insert( a*t + b );28 }29 }30 }else if ( k-t == 0 ){31 F = t ;32 }33 }34 if( F ){35 //printf("###\n");36 set
::iterator it1 = lower_bound(Ans.begin(),Ans.end(),F);37 set
::iterator it2 = lower_bound(Ans.begin(),Ans.end(),2*F);38 //it2--;39 Ans.erase(it1,it2);40 }41 ans = Ans.size() + F;42 printf("%lld\n",ans);43 return 0 ;44 }
数字变换

 

 

转载于:https://www.cnblogs.com/Osea/p/10995118.html

你可能感兴趣的文章
css知多少(8)——float上篇
查看>>
NLB网路负载均衡管理器详解
查看>>
水平添加滚动条
查看>>
PHP中”单例模式“实例讲解
查看>>
VS2008查看dll导出函数
查看>>
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
Mysql利用binlog恢复数据
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
WPF 降低.net framework到4.0
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>
开源磁盘加密软件VeraCrypt教程
查看>>
本地vs云:大数据厮杀的最终幸存者会是谁?
查看>>
阿里云公共镜像、自定义镜像、共享镜像和镜像市场的区别 ...
查看>>
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
Java线程:什么是线程
查看>>
mysql5.7 创建一个超级管理员
查看>>