一鼓作气再而衰三而竭。 小艺总是喜欢把任务分开做。 小艺接到一个任务,任务的总任务量是n。 第一天小艺能完成x份任务。 第二天能完成x/k。 。。。 第t天能完成x/(k^(t-1))。 小艺想知道自己第一天至少完成多少才能完成最后的任务。输入描述:第一行输入整数n,k。(1<=n<=1e9,2<=k<=10),输出描述:输出x的最小值。 用C语言实现
时间: 2024-03-22 20:38:04 浏览: 64
以下是用C语言实现的代码:
```c
#include<stdio.h>
#include<math.h>
int main(){
int n, k;
scanf("%d %d", &n, &k);
double sum = 0, x = 0;
for(int i=0; i<100; i++){
sum = 0;
for(int j=0; j<=i; j++){
sum += x * pow(k, j);
}
if(sum >= n){
printf("%d", (int)x);
return 0;
}
x++;
}
return 0;
}
```
代码思路:
首先读入n和k,然后使用两个循环分别计算任务总量并判断是否达到n,如果达到则输出x的最小值。
其中,外层循环最多执行100次,因为x的最小值不会太大。内层循环用来计算任务总量,pow函数用来计算k的幂次方。
阅读全文