HDU4342 History repeat itself數學規律題
題目連結:
http://acm.hdu.edu.cn/showproblem.php?pid=4342
題意:
就是要求第a個非平方數是什麼
分析:
假設第a個非平方數是x,x前面有n個平方數,則n*n<x<(n+1)*(n+1);
n*n前面的非平方數的個數是n*n-n;
首先先根據a求n,n是滿足不等式 n*n-n<a的最大正整數。
不等式的解是:
(1+sqrt(1+4*a))/2;必需對這個數上取整,然後減一就是n了。
然後第a個非平方數就是 n*n+(a-n*n+n)=a+n
之後就是求另一個式子的值了,首先求1~n*n-1求和:
(2*n-1)*(n-1)對它從2到n求和得到:n*(n+1)*(2*n+1)/3-3*n*(n-1)/2+n;
之後加上 (n+a-n*n+1)*n;
程式碼如下:
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
#define LL long long
int t;
LL n,idx,ans;
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
idx=(LL)ceil((1+sqrt(1+4.0*n))/2)-1+n;
LL k=idx-n;
LL sum=k*idx;
LL tmp=(1+k)*k*(2*k+1)/6-k;
ans=sum-tmp;
cout<<idx<<" "<<ans<<endl;
}
return 0;
}
相關文章
- 數學規律題,數論知識:hdu1792
- codeforces 340CTourist Problem(找規律數學題)
- EMS單號規律與順豐單號規律(C#)C#
- A Multiplication Game (博弈,規律)GAM
- 打表找規律
- 全面學習ORACLE Scheduler特性(6)設定Repeat Interval引數Oracle
- 智慧手機增長規律,掌握在少數人手裡
- 細數全球最流行的66款App的共同規律APP
- HDU 1792 - A New Change Problem(規律,最大不能組合數及其個數)
- 元規劃:使用規劃器解決數學問題
- 【組合數+找規律】codeforces 815B - Karen and Test
- HDU 6298 Maximum Multiple(找規律)
- HDU 4951 Multiplication table(找規律)
- leedcode-單詞規律
- JavaScript repeat()JavaScript
- 圖片跨域規律探尋跨域
- LeetCode-單詞規律LeetCode
- 索引的應用規律總結索引
- Java欄位初始化規律Java
- QOJ7789-一道位運算找規律好題
- 【LeetCode】290. Word Pattern 單詞規律(Easy)(JAVA)每日一題LeetCodeJava每日一題
- HDU 3682To Be an Dream Architect(統計規律題目 三線相交bug)
- 軟體開發的21條規律
- LeetCode-290-單詞規律LeetCode
- votedisk在ASM diskgroup上的存放規律ASM
- JavaScript repeat()方法JavaScript
- prevent a Javascript Modal Window to open itself in a new windowJavaScript
- 「分數規劃」學習筆記及做題記錄筆記
- Python裡的引用與拷貝規律Python
- python3 中 and 和 or 運算規律Python
- 事理圖譜:事件演化的規律和模式事件模式
- 顧森——《追逐語言的規律》(視訊)
- 一個80後總結就業規律就業
- Shareaholic:社交分享和閱讀的規律
- log_buffer的記憶體分配規律記憶體
- 這款解謎遊戲的開發者是"自然規律"遊戲
- 計算出大小有什麼走勢圖規律
- Touring cities (找規律 哈密爾頓迴路)