- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ACM数论解题报告集合.doc
Hdu 4143 y^2 = n +x^2
A Simple Problem
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1650????Accepted Submission(s): 424
Problem Description
For a given positive integer n, please find the smallest positive integer x that we can find an integer y such that y^2 = n +x^2.
?
Input
The first line is an integer T, which is the the number of cases.Then T line followed each containing an integer n (1=n = 10^9).
?
Output
For each integer n, please print output the x in a single line, if x does not exit , print -1 instead.
#includestdio.h#includemath.hint main(){??? int i,t,n,x,flag;??? scanf(%d,t);??? while(t--)??? {??? ??? flag=0;??? ??? scanf(%d,n);??? ??? i=sqrt(n);??? ??? for(i;i=1;i--)??? ??? {??? ??? ??? if(n%i==0(n/i-i)%2==0n/i!=i)??? ??? ??? {??? ??? ??? ??? x=(n/i-i)/2;??? ??? ??? ??? printf(%d\n,x);??????????????? flag=1;??? ??? ??? ??? break;??? ??? ??? }??? ??? ??? ??? ??? }??? ??? if(flag==0) printf(-1\n);??? }??? return 0;}/*一开时超时 是百分百的事?? 不过要敢于写出超时的? (在时间还充裕的情况下)后来一直不知道真么做。? 对于这种类型的题目要密切结合式子的特点 把2层循环变成一层n=(x+y)*(x-y)? 让i=x-y n/i做x+y??? x=(n/i-i)/2;然后找出各种条件限制 满足则可求出结果由于程序有可能出现n/i=i的情况 但是题目中题意告诉我们不可能所以千万要排除这种情况后来在这个地方也错了几次*/
另外此题也可用欧几里得去做
hdu数论之Leftmost Digit目大意是输入N,求N^N的最高位数字。1=N=1,000,000,000估计大家看到N的范围就没想法了。确实N的数字太大,如果想算出结果,即使不溢出也会超时。这题我纠结了很久。在同学的提示下ac了。题目是这样转化的。首先用科学计数法来表示 N^N = a*10^x; 比如N = 3; 3^3 = 2.7 * 10^1;我们要求的最右边的数字就是(int)a,即a的整数部分;OK, 然后两边同时取以10为底的对数 lg(N^N) = lg(a*10^x) ;化简 N*lg(N) = lg(a) + x;继续化 N*lg(N) - x = lg(a)a = 10^(N*lg(N) - x);现在就只有x是未知的了,如果能用n来表示x的话,这题就解出来了。又因为,x是N^N的位数。比如 N^N = 1200 == x = 3; 实际上就是 x 就是 lg(N^N) 向下取整数,表示为[lg(N^N)]ok a = 10^(N*lg(N) - [lg(N^N)]); 然后(int)a 就是答案了。#includestdio.h#includemath.hint main(){?int t;?long long ans;?double k,n;?scanf(%d,t);?while(t--)?{???scanf(%lf,n);??k=n*log10(n);??k=k-(long long)k;??????? ans=(long long)pow(10.0,k);??printf(%lld\n,ans);?}?return 0;}注意 最好让log中的数都是dou
您可能关注的文档
- 9SiCr钢带轧制工艺要点.doc
- 9、戏曲人物(2课时).doc
- 9、科普大篷车.doc
- 9、距离测量。。.doc
- 9云朵面包.doc
- 9初三奥数__第九讲___坐标平面上的直线.doc
- 9制造要求.doc
- 9广东省湛江市徐闻县(雷州半岛政治、经济、文化、交通的重要中心) (转载).doc
- 9月13日磨枪版-BD-2013年中级通信工程师综合能力模拟试.doc
- 9月份中国制造业采购经理指数.doc
- Actel FPGA DIY 交通灯的电路设计.doc
- adf100系列多用户电能表使用说明书v1.0-131227.doc
- Aedejjq中国精算师资格考试部分科目转换对照表.doc
- AEEHK贴吧DEHK经验农等级教程村信用百度百度百度.doc
- AEEPC贴吧DEPC经验农等级教程村土地百度百度百度.doc
- AEEWU贴吧DEWU经验农等级教程村土地流转合同对农民补贴没百度百度百度.doc
- Aefcjeu中国人民大学统计学院招生简章(风险管理与精算学专业).doc
- AEGNC贴吧DGNC经验农等级教程民进城后能百度百度百度.doc
- AETZC贴吧DTZC经验加等级教程强人民法院审百度百度百度.doc
- aflp技术.doc
最近下载
- DBJT 08-120-2015雨水口标准图2015沪S203.docx VIP
- 神经介入产品培训.ppt VIP
- 重庆市綦江区郭扶镇社区工作者招聘考试试题汇总2024.docx VIP
- ECharts数据可视化课件 第1章 初识ECharts.pptx VIP
- 重庆市綦江区安稳镇社区工作者招聘考试试题汇总2024.docx VIP
- 突发事故处理流程.pdf VIP
- 电工安全生产协议书(完整版).docx VIP
- 固定翼无人机技术完整全套教学课件.pdf
- 1.35KV预制舱变电站项目(整套35KV预制舱,变压器,开关柜,火灾报警)技术规范书.doc VIP
- DB36_T 811-2020 井冈蜜柚 生产技术规程.pdf VIP
文档评论(0)