給定一個正整數k(3≤k≤15),把所有k的方冪及所有有限個互不相等的k的方冪之和構成一個遞增的序列,例如,當k=3時,這個序列是: 1,3,4,9,10,12,13,… (該序列實際上就是:3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,3^0+3^1+3^2,…) 請你求
只有1行,為2個正整數,用一個空格隔開:
k N
(k、N的含義與上述的問題描述一致,且3≤k≤15,10≤N≤1000)。
計算結果,是一個正整數(在所有的測試資料中,結果均不超過2.1*10^9)。(整數前不要有空格和其他符號)。
#include<stdio.h>
int n2[1010];
long long l1 = 1;
long long n, k;
long long sm(long long i,long long k)
{
long long s = 1;
int j;
for (j = 1; j <= i; j++)
{
s *= k;
}
return s;
}
int main()
{
int i;
scanf("%lld %lld",&k,&n);
while(n > 0)
{
n2[l1++] = n % 2;
n /= 2;
}
l1--;
long long s = 0;
for (i = 1; i <= l1; i++)
{
if (n2[i])
{
s += sm(i-1,k);
}
}
printf("%lld",s);
return 0;
}
相關推薦
給定一個正整數k(3≤k≤15),把所有k的方冪及所有有限個互不相等的k的方冪之和構成一個遞增的序列
題目如下 分析 我們可以逆向轉化,把n轉化為二進位制數,然後把他當做K進位制,然後轉化為十進位制的數輸出就是答案結果了 程式碼如下 #include<stdio.h> #include<math.h> #include<stdlib.
一個正整數k(3≤k≤ 15),把所有k的方冪及所有有限個互不相等的k的方幕之和構成個通增的序列
提供一個演算法,其實由於是將有限個互不相等的k,所以我們這裡考察第n項的時候,能取到的最大的k的冪次,不妨設次數是p,那麼與之相關的很顯然應該有2^p個,於是就想到了其實an與k的次數是和n的二進位制有關的. 假設n=∑bk2k,bk=1或0.於是我們有an=∑(bk*k(k-1)). 比如
給定一個正整數k(3≤k≤15),把所有k的方冪及所有有限個互不相等的k的方冪之和構成一個遞增的序列,例如,當k=3時,這個序列是: 1,3,4,9,10,12,13,… (該序列實際上就是:3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,3^0+3^1+3^2,…) 請你求
只有1行,為2個正整數,用一個空格隔開: k N (k、N的含義與上述的問題描述一致,且3≤k≤15,10≤N≤1000)。 計算結果,是一個正整數(在所有的測試資料中,結果均不超過2.1*10^9)。(整數前不要有空格和其他符號)。 #include<stdio.h> int
輸入一個正整數n,輸出n!的值。 其中n!=1*2*3*…*n。
問題描述 輸入一個正整數n,輸出n!的值。 其中n!=1*2*3*…*n。 演算法描述 n!可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用一個數組A來表示一個大整數a,A[0]表示a的個位,A[1]表示a的十位,依次類推。 將a乘以一個整
# 從鍵盤輸入一個正整數,用2的冪次方的形式輸出。約定冪次方用括號來表示,即表示為2(b),b=1時,冪省略。例如139=2^7+2^3+2^1+2^0,即:2(7)+2(3)+2+2(0)
樣例輸入: 402 樣例輸出: 2(8)+2(7)+2(4)+2 要求:冪不能重複,如:139=26+26+23+21+20(出現了2個6次方) 參考 C 程式碼: #include<stdio.h> #include<stdlib.h>
輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數, 列印能拼接出的所有數字的最小的一個。例如輸入{3,32,321,4},則列印最小的數字是 3213234
public class FandMax { public void makeMax(int[] nums){ boolean flag=true; for (int i = 0; i < nums.length; i++) { for (int j = 0; j <
給定一個正整數n,求出0到n中有幾個數滿足其二進位制表示不包含連續的1
樣例: 輸入:5 輸出:5 0 01 10 100 101滿足,11不滿足。 那麼6144呢? 答案是610,怎麼去計算呢? 思路:查詢從0到n中有多少個數包含連續的1,然後在總數中去掉這些情況,得到
如果一個正整數m的所有小於m的不同因子(包括1)加起來正好等於m本身,那麼就被稱它為完全數。它是指這樣的一些特殊的自然數,它所有的真因子(即除了自身以外的約數)的和,恰好等於它本身。 注意:1沒有真因
#include<stdio.h>int IsPerfect(int x);int main (){ int m; printf("Input m:\n"); scanf("%d", &m); if (m > 1) {
問題描述 給定一個序列,每次詢問序列中第l個數到第r個數中第K大的數是哪個。 輸入格式 第一行包含一個數n,表示序列長度。 第二行包含n個正整數,表示給定的序列。 第三個包含一個正整數m,表
#include<iostream> using namespace std; void print(int *a,int len) { int i=0; for(;i<len;++i) cout<<i+1<<':'<<
任意給定一個正整數N,求一個最小的正整數M(M>1),使得N*M的十進位制表示形式裡只含有1和0。
解決這個問題首先考慮對於任意的N,是否這樣的M一定存在。可以證明,M是一定存在的,而且不唯一。 簡單證明:因為 這是一個無窮數列,但是數列中的每一項取值範圍都在[0, N-1]之間。所以這個無窮數列中間必定存在迴圈節。即假設有s,t均是正整數,且s<t,有 。於是迴圈節長度為t-s。於是10
C++第四周【任務3】設計一個“正整數”類,並通過一系列的成員函式對其性質進行做出判斷或列出相關聯的數值。
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱: * 作 者:李洪懸
【Java】【演算法練習】輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。
題目描述: 輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列 {3,32,321},則打印出這三個數字能排成的最小數字為321323。 解題思路: 解題思路: 比較兩個字串s1 S2的
大一上C語言期末複習:輸入一個正整數,將其分解為質因數,如90=2*3*3*5
//輸入一個正整數,將其分解為質因數,如90=2*3*3*5 #include <stdio.h> int main() { int n,i; while(scanf("%d",&n)) { if(n==1) { printf("n=
實現一個函式,對給定的正整數N,列印從1到N的全部正整數
#include <stdio.h> void PrintN ( int N ); int main () { int N; scanf("%d", &N);
給定一個正整數,求其位數以及正序逆序輸出
給定一個正整數,求其位數以及正序逆序輸出 #include<stdio.h> int Count(int n)//求正整數的位數 { int tmp=0; do { n=n/10; tmp++; }while(n!=0); return tmp; } void PrintReve
給定一個正整數,編寫程式計算有多少對質數的和等於這個輸入的正整數,並輸出結果
1 public static void main(String[] args) { 2 Scanner sc = new Scanner(System.in); 3 while(true) { 4 System.out.print
一個正整數如果等於組成它的各位數字的階乘之和,該整數稱為階乘和數。 例如,145=1!+4!+5!,則145是一個三位階詳細和數。 請問:50000內共有多少個階乘和數?所有的階乘和數(按字典序,即1打頭的在前,2打頭的次之,..., 空格分隔)
#include <stdio.h>long jc(int x); int main() { int a, b, c, d, e, f, g; long m1, m2, m3, m4, m5, m6, n1, n2, n3, n4, n5, n6; for(a = 1; a <=
輸入一個正整數n,輸出1到n的所有排列
思路:字典序演算法 1、從序列的末端開始,找到第一個相鄰數組合,其中第一個數小於第二個數,比如:1 2 3 4,第一個組合是34,記錄3的位置為i; 2、從i位置之後的元素中,從末端開始找第一個大於它的數,就是4,交換這兩個數,變為 1 2 4 3; 3、將i位置之後的數全
N的階乘:輸入一個正整數N,輸出N的階乘
輸入描述: 正整數N(0<=N<=1000) 輸出描述: 輸入可能包括多組資料,對於每一組輸入資料,輸出N的階乘 輸入例子: 4 5 15 輸出例子: 24 120 13076743680
網易筆試題:輸入一個正整數,若該數能用幾個連續正整數之和表示,則輸出所有可能的正整數序列。
解題思路: **找到數學規律。n以i為開頭的j個整數的和為i*j+j*(j-1)/2;判斷輸入的整數是否和計算結果相同。 如果相同則迴圈輸出以i為開頭的j個整數。 這個題目給我最大的啟示就是要學會用數學的方法來解決問題,在此之前我一直希望通過一種遞