参考博客
XTU-OJ 1452-完全平方数
题意
输入一个奇数,使得 n*(2*a+n-1)/2是一个完全平方数,求满足条件的最小的a
1<=n<=1e9
先输入样例数,再输入n
输入
2
1
3
输出
0
2
代码
#include<stdio.h>#define N 1000000010int a[1000000];int main()
{int cnt=0;for(int i=1;i*i<=N;i++){a[++cnt]=i*i;}cnt++;a[cnt]=cnt*cnt;int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);int temp=n;for(int i=2;i<=cnt;i++){while(temp%a[i]==0)temp/=a[i];}if(temp==n){if(n==1) puts("0");else printf("%d\n",(n+1)/2);continue;}for(int i=1;i<=cnt;i++){int ans=a[i]*temp-(n-1)/2;if(ans>=0){printf("%d\n",ans);break;}}}return 0;
}
想法
好难,没有老师讲解和社区讨论,感觉还是差点意思,希望以后有一天,可以把oj上的题轻松的写出来
现在写oj上的题,就像是高中写老师布置的没有详细解析的作业题,然后老师会选择一些比较有代表性的题目进行讲解,那么那些没有代表性的自己不会做的题目咋整呢,自己一道一道的啃,这不是自己为难自己,自己给自己加难度么
为什么不做有完整详细步骤的题目,为什么不做有详细题解,视频解析,讨论社区的题目,等到实力足够了再来做oj,就像高中刷题刷到熟练了再去考试一样
当然oj还是要做的,毕竟马上就要考试了
想了一上午,感觉理解的差不多了,但是自己写还是出现奇怪的错误,一点心态都没有了
主要是有疑问解决不了,自己也没有那股钻研的劲头,也不知道该请教谁
首先根据题意求和,得到题意里面说的式子。
式子的化简如图