一個正整數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,第7項,因為7對應的二進位制數是111(2),所以a7=132+1*31+13^0=13.
若為第11項,11對應的二進位制是1011(2),所以a11=133+0*32+1*31+1*30=31.
#include<stdio.h> #include<math.h> int main() {int k,n,j=0;//基數,項數,結果 printf("基數和項數:"); scanf("%d %d",&k,&n); int a[100],i=0,b; b=n; while(b) {a[i++]=b%2; b/=2; } i--; while(i>=0) {j+=a[i]*pow(k,i); i--; } printf("基數是%d的第%d項是%d",k,n,j); } 在這裡插入程式碼片
相關推薦
給定一個正整數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
輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數, 列印能拼接出的所有數字的最小的一個。例如輸入{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 <
問題描述 給定一個序列,每次詢問序列中第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<<':'<<
【Java】【演算法練習】輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。
題目描述: 輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列 {3,32,321},則打印出這三個數字能排成的最小數字為321323。 解題思路: 解題思路: 比較兩個字串s1 S2的
題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。
public class S40 { public static void main(String args[]) { MyMath math = new MyMath(); //math.fengjie(6); for(int i=1;i<100;i++){ Syste
java經典題丨將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5
程式分析:對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成: (1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。 (2)如果n > k,但n能被k整除,則應打印出k的值,並用n除以k的商,作為新的正整數你n,重複執行第一步。 (3)如果n不能被k整
輸入一個正整數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>
python將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。
方法一:用時最小,不過消耗記憶體 """ 5、將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。 """ import time import math num = int(input("請輸入一個正整數:")) # 計算程式開始時間 start01 =
【程式14】 題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> /* 【程式14】 題目:將一個正整數分解質因數。例如:輸入90, 打印出90 = 2 * 3 * 3 * 5。 【分析】 就是從2到自己,一一除過去 */ #if 0 int main
C++第四周【任務3】設計一個“正整數”類,並通過一系列的成員函式對其性質進行做出判斷或列出相關聯的數值。
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱: * 作 者:李洪懸
大一上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=
輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數。打印能拼接出所有數字中最小的一個
style void ole min 一個數 string right public [] 題目: 輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數。打印能拼接出所有數字中最小的一個。 解答: 1 public class Solution { 2 3
求階乘,輸入一個正整數 n,輸出n!
factor i++ print 階乘 pri tor n) printf main #include<stdio.h>int factorial (int n); int main(){ int n; scanf("%d",&n); printf("
JavaSE7基礎 得到一個正整數有幾位 String.valueOf(num).length()
ring 代碼 ava 運行 .com value 網上 ima 註意 版本參數:jdk-7u72-windows-i586註意事項:博文內容僅供參考,不可用於其他用途。 代碼 class Demo{ public static void main(String
求一個正整數的階乘
ram -c height white fun mar idt bubuko console 求一個正整數的階乘/* 求一個正整數的階乘。 * 輸入一個正整數,返回它的階乘。 * */ let fact = (function f(num){ "u
給定一個正整數,求其位數以及正序逆序輸出
給定一個正整數,求其位數以及正序逆序輸出 #include<stdio.h> int Count(int n)//求正整數的位數 { int tmp=0; do { n=n/10; tmp++; }while(n!=0); return tmp; } void PrintReve
判斷一個正整數的位數、按逆序輸出、按正序輸出
#if 0 //判斷一個數字有幾位數#include <stdio.h>int GetFigure(int n){ int flg=0; do{ n /= 10; flg++; }while