大神解答 C语言 VIJOS-P1216 亲和数!!!急求
答案:1 悬赏:80 手机版
解决时间 2021-04-15 20:48
- 提问者网友:沦陷
- 2021-04-15 08:54
大神解答 C语言 VIJOS-P1216 亲和数!!!急求
最佳答案
- 五星知识达人网友:廢物販賣機
- 2021-04-15 10:27
我给挑挑毛病
1.if(a*a==n)这个绝对不明智,想一下,删掉
2.main函数中输入后就要对a, b调整 如下
if(a>b ){
temp=a;
a=b;
b=temp;
}
3.c语言的定义都要放到前面的把 int t等都拿到最前面
暂时就这些,还有吧那些没意义的代码删掉精简追问不对还是错误超时追答这还 超时那就是算法的问题了 ,不够精简,想想其他的算法,肯定是有捷径的
我的想法,猜的对错勿论
1 ≤ A ≤ B ≤ 10^8 且 B-A ≤ 10^5
有专门的函数或者公式可以求得值,因为只要知道数量,不需要知道到底是哪一对。
把每一个值先全部求出来存进去数组中,然后输入后只要比较整理后的值就行了,一次搞定最耗时间的一部分
对你的值进行判断,明显不可能的几个不进行sum函数调用,传说中的剪枝法
:::当然这几种方法我看第一种是最有可能的,第二.三种基本不可能
1.if(a*a==n)这个绝对不明智,想一下,删掉
2.main函数中输入后就要对a, b调整 如下
if(a>b ){
temp=a;
a=b;
b=temp;
}
3.c语言的定义都要放到前面的把 int t等都拿到最前面
暂时就这些,还有吧那些没意义的代码删掉精简追问不对还是错误超时追答这还 超时那就是算法的问题了 ,不够精简,想想其他的算法,肯定是有捷径的
我的想法,猜的对错勿论
1 ≤ A ≤ B ≤ 10^8 且 B-A ≤ 10^5
有专门的函数或者公式可以求得值,因为只要知道数量,不需要知道到底是哪一对。
把每一个值先全部求出来存进去数组中,然后输入后只要比较整理后的值就行了,一次搞定最耗时间的一部分
对你的值进行判断,明显不可能的几个不进行sum函数调用,传说中的剪枝法
:::当然这几种方法我看第一种是最有可能的,第二.三种基本不可能
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯