給定一個正整數k(3≤k≤15),把所有k的方冪及所有有限個互不相等的k的方冪之和構成一個遞增的序列
題目如下
分析
我們可以逆向轉化,把n轉化為二進位制數,然後把他當做K進位制,然後轉化為十進位制的數輸出就是答案結果了
程式碼如下
#include<stdio.h> #include<math.h> #include<stdlib.h> int main() { int a[99], i = 0; int n,k; printf("請輸入n和k\n"); scanf_s("%d%d", &n,&k); while (n != 0) { a[i++] = n % 2; n /= 2; } int str = 0,j; for (j = 0; j < i; j++) { str += a[j] * pow(k, j); } printf("%d\n", str); system("pause"); }
執行截圖
相關推薦
給定一個正整數k(3≤k≤15),把所有k的方冪及所有有限個互不相等的k的方冪之和構成一個遞增的序列
題目如下 分析 我們可以逆向轉化,把n轉化為二進位制數,然後把他當做K進位制,然後轉化為十進位制的數輸出就是答案結果了 程式碼如下 #include<stdio.h> #include<math.h> #include<stdlib.
給定一個正整數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
一個正整數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)). 比如
c語言:實現對於給定的正整數N,依次打印出小於等於N的所有素數。兩種方法及其優化
請編寫一個程式,實現對於給定的正整數N,依次打印出小於等於N的所有素數。方法一:試除法由素數的定義得到如下程式:#include<stdio.h>int print_prime(int num)//prime表示素數{int i = 0;for (i = 2; i
問題描述 給定一個序列,每次詢問序列中第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<<':'<<
給定一個正整數,求其位數以及正序逆序輸出
給定一個正整數,求其位數以及正序逆序輸出 #include<stdio.h> int Count(int n)//求正整數的位數 { int tmp=0; do { n=n/10; tmp++; }while(n!=0); return tmp; } void PrintReve
題目:將一個正整數分解質因數。例如:輸入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
輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數, 列印能拼接出的所有數字的最小的一個。例如輸入{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 <
給定一個正整數,編寫程式計算有多少對質數的和等於這個輸入的正整數,並輸出結果
1 public static void main(String[] args) { 2 Scanner sc = new Scanner(System.in); 3 while(true) { 4 System.out.print
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乘以一個整
給定一個正整數n,求出0到n中有幾個數滿足其二進位制表示不包含連續的1
樣例: 輸入:5 輸出:5 0 01 10 100 101滿足,11不滿足。 那麼6144呢? 答案是610,怎麼去計算呢? 思路:查詢從0到n中有多少個數包含連續的1,然後在總數中去掉這些情況,得到
# 從鍵盤輸入一個正整數,用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 =
給定一個正整數n,則n的三次方一定可以分解成n個連續的奇數
#include <cstdio>int main(){ int n; scanf("%d",&n); int a,b,c,sum; c = n*n*n ; a = 1; do{ sum = 0; b = a + (n-1)*2;
給定一個十進位制正整數N,求出從1開始,到N的所有整數,數字1出現的次數(java實現)
【程式設計之美】給定一個十進位制正整數N,求出從1開始,到N的所有整數,數字1出現的次數。 例如,N=2,則兩個數為1,2 。數字1出現的個數是1. 又如n = 20.則20個數中1出現的為:1,10,11,12,13,14,。。。19 共有12個。 設計一個演算法
【程式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
給定一個正整數n,找到比n小的完美平方數相加和等於n的最小數目。
本題源自leetcode ---------------------------------------------------------------- 思路: 動態規劃。用一個vector儲存整數 i 需要的最小平方和數。 1 初始化一個vector. v[0]=0
給定一個正整數陣列,隨機取出一個數,要求數值越大的數被被取出的概率越大。- JAVA
問題 給定一個正整數陣列,隨機取出一個數,要求數值越大的數被被取出的概率越大 思路 先將陣列arr按從小到大排序,然後新建一個數組arrb arr中排在第1位的數,在arrb中寫入1次 arr中排在第2位的數,在arrb中
今天開始學Java 給定一個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,並輸出結果。
給定一個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於1000。如,輸入為10, 程式應該輸出結果為2。(共有兩對質數的和為10,分別為(5,5),(3,7)) 輸入描述:輸入包括一個整數n,(3 ≤ n < 1000)輸出描述:輸出對