信息学奥赛一本通 1937:【06NOIP普及组】数列 | 洛谷 P1062 [NOIP2006 普及组] 数列
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 1937:【06NOIP普及组】数列 | 洛谷 P1062 [NOIP2006 普及组] 数列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 1937:【06NOIP普及組】數列
洛谷 P1062 [NOIP2006 普及組] 數列
【題目考點】
1. 數制
【解題思路】
如果k為2,那么這個數列
- 第1項為202^020
- 第2項為212^121
- 第3項為21+202^1 + 2^021+20
- 第4項為222^222
- 第i項為i在二進制下的按位權展開式,其值為i。
輸入n和k后,數字n在二進制下做數字拆分,讓n在二進制下的每一位數乘以一個“位權”,第i位的“位權”為ki?1k^{i-1}ki?1,然后加和。
【題解代碼】
解法1:
#include<bits/stdc++.h> using namespace std; int main() {int k, n, q = 0;//q:指數 long long s = 0;cin >> k >> n;for(int a = n; a > 0; a /= 2, q++)s += pow(k, q) * (a % 2); //k的q次方:位權 cout << s;return 0; }總結
以上是生活随笔為你收集整理的信息学奥赛一本通 1937:【06NOIP普及组】数列 | 洛谷 P1062 [NOIP2006 普及组] 数列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt mysql乱码_Qt连接mysql
- 下一篇: 信息学奥赛一本通 2044:【例5.12