讨论 / 错了一个点,第九个,希望dalao帮忙找错
zhangge 2017-02-11 19:44:00
点我顶贴 收藏 删除
#include<stdio.h>

#include<stdlib.h>

#include<string.h>

void estimate(long long int k,long long int num,long long int add)

{

//estimate

long long int count=0;

long long int mid=1;

long long int count1=0;

long long int mid2=1;

for(count=0;mid<num;count++,mid=mid*2)

{

//printf("%d\n",mid);

}

if(mid==num)

{

for(count1=0;count1<count;count1++)

{

mid2=mid2*k;

}

printf("%lld",mid2+add);

}

else

{

for(count1=0;count1<count;count1++)

{

mid2=mid2*k;

}

estimate(k,num-mid/2,add+mid2/k);

}

}

int main()

{

int k, num;

scanf("%d%d",&k,&num);

//input

estimate(k,num,0);

return 0;

}

#1 quanyh15@2017-02-23 04:10:09
回复 删除
这题的答案好像有点问题,答案都是在int范围内的,实际上会有溢出,然后除以int的最大值取余数,才得到平台给的答案。
#2 zhangge@2017-02-27 05:56:48
回复 删除
回复 #1 quanyh15:dalao的意思是那个实际上是除以int的溢出得到的值么?

#3 zhangge@2017-02-27 05:57:20
回复 删除
回复 #1 quanyh15:那dalao能帮忙改改么?这怎么处理啊?
#4 bys@2018-05-19 19:14:04
回复 删除
回复 #2 zhangge:不用二分的

查看更多回复
提交回复