1. 程式人生 > >給定一個正整數k(3≤k≤15),把所有k的方冪及所有有限個互不相等的k的方冪之和構成一個遞增的序列

給定一個正整數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");
}

執行截圖

在這裡插入圖片描述