pat a1096(因式分解)
总结一下这道题吧
1.这道题很简单
2.我没写出来
没写出来的原因
1.题目没有完全看懂,尤其是描述中的最后一句:
"Now given any positive N, you are supposed to find the maximum number of consecutive factors, and list the smallest sequence of the consecutive factors."前半句很好理解,就是输出最多的那几个因子,后半句就比较懵逼了,我只知道sequence是序列的意思,最小的序列就有点理解无能了。书上给的解释是在连续的因子个数最多的方案有多个时,输出第一个数字最小的那一串(醍醐灌顶!),英语差非常影响做题,要注意
2.刚开始看懂这道题的时候一脸懵逼,大脑一片空白。根本想不出一种办法去实现这种在得到最大长度的同时还能输出那串序列的方法。现在回头看的话,知道序列的最大长度和该序列的第一个数字就能完全确定它了,这种思想在stl中的一些函数中有所体现,比如substr,erase等
3.书中算法的思想:把某一段连续的数字的乘积看做整体,如果这个整体能够被整除,就说明满足条件。知道这个思想就很好实现了
4.有个坑点(第一小点中没能看懂英文的锅),当没有连续(指长度大于1)的序列时,应该输出最小的那一个因子而不是他本身(确实毫无道理,抱头痛哭~~)所以anslen的初值应该设置为0以区别
5.这道题的代码有一定的冗余度,就是枚举了所有的小于sqrt(n)的正整数,存在优化的空间。我在思考解决办法的时候,总想着用一种没有冗余的完美的方法去解决它,结果走到了死胡同。
6.数据类型用long long防止在做乘法的时候数据溢出。
#include<iostream>
#include<math.h>
using namespace std;
typedef long long ll;
ll fac[100];int main()
{ll n,m,ansi=0;cin>>n;m=n;ll b=sqrt(1.0*n);ll c=0,anslen=0;for(int i=2;i<=b;i++){ll temp=1,j=i;while(1){temp*=j;if(n%temp!=0)break;if(j-i+1>anslen){ansi=i;anslen=j-i+1;}j++;}}if(anslen==0)cout<<"1\n"<<n;else{cout<<anslen<<endl;for(int i=0;i<anslen;i++){printf("%lld",ansi+i);if(i!=anslen-1)cout<<"*";}}
}
pat a1096(因式分解)相关推荐
- PAT A1096 质因子分解
这道题没有用常规的从小到大分解质因子,而是要连续的质因子: 其实思路很简单,从2~sqrt(n)进行枚举,使得n%temp是否能够取余为0,temp为连续质因子的乘积.在每次迭代中记录最长的质因子序列 ...
- pat是什么意思中文_pat是什么意思
展开全部 PAT考试,全称为Physics Aptitude Test,是牛津大学考试中心与英国入学考试服务中心合作开设的物理能力测试e68a8462616964757a686964616f31333 ...
- 【PAT甲级】A1051-A1100刷题记录
文章目录 (栈) A1051 Pop Sequence (25 分) 0.47 (静态链表) A1052 Linked List Sorting (25 分) 0.21 (静态树+先根遍历DFS) A ...
- pat是什么意思中文_PAT是什么?
展开全部 PAT考试,全称为Physics Aptitude Test,是牛津大学考试中心与英国入学考试服e69da5e6ba9062616964757a686964616f3133343364316 ...
- 【置顶】【PAT】PAT甲级题目及分类总结(持续更新ing)
在2019年3月底,我决定考浙大计院,经过一个月还算凑合的学习,痛定思痛,决定整理整理自己的博客. 粗略估计,大概一个月的时间里我AC了31道题,大概用时40个小时上下,毕竟还要把大部分时间花在笔试上 ...
- PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)
PAT (Basic Level) Practise (中文)-1025. 反转链表 (25) http://www.patest.cn/contests/pat-b-practise/1025 ...
- pat 多项式A/B
第一次接触多项式除法 cccc L2-018. 多项式A除以B 2017-04-01 09:09 9人阅读 评论(0) 收藏 举报 分类: 数学(30) 模拟(4) 目录(?)[+] 点击打开链 ...
- 1093 Count PAT‘s
这题出现在"活用递推"专题下面,所谓递推就是这一步的结果和上一步的结果有直接联系.对于本题来说,从左到右,记到当前位置,一共出现的P的个数,如果当前位置是P,则个数就是上一位的加1 ...
- 网络地址转换(PAT)
一.静态NAT 1.实验环境 GNS3模拟软件 2.网络拓扑及IP地址规划如图 3. 通过配置PAT实现IP地址的多路复用,达到节省IP地址的目的 4.实验步骤(IP地址配置步骤省略) R1上的配置 ...
最新文章
- linux c 内存共享
- getServletPath与getRequestURI
- Optimize Search Results
- Java源码分析之HashMap(JDK1.8)
- PHP中插件机制的一种实现方案
- P3:线性分类、损失函数与梯度下降
- java字符排序_Java实现对字符串中的数值进行排序操作示例
- 计算机网络管理员高级操作技能考核试卷,高级计算机维修工操作技能考核试卷...
- 《高质量C编程指南》读后感
- 1.安装编译软件(keil)
- 2022Android SDK下载与安装
- linux下FFmpeg编译和解决nasm/yasm not found or too old错误
- elementUI 页面布局
- 曲线解决问题。HTTP ERROR 403 No valid crumb was included in the request【重装到带CSRF 的版本】
- 小程序审核失败:你的小程序涉及提供播放、观看等服务,请补充选择:文娱-其他视频类目。怎么解决呢
- 2022房地产最新消息
- python批量剪辑音频pydub
- 融媒体网络营销WSEO案例分享:两天内与大型网站有相同排名
- 永恒之蓝漏洞复现(ms17-010)
- 汕头c语言培训班,汕头c语言编程学习,汕头学c语言编程哪个好,汕头学c语言编程需要报培训班吗...