#include <iostream>
#include <cmath>
using namespace std;
int main()
{ int n = 23333333;
for(int x=0;x<=n;x++)
{ int y=n-x;
if(-1.0*x*x/n*log2(1.0*x/n)-1.0*y*y/n*log2(1.0*y/n)==11625907.5798)
{
cout<<x;
break;
}
if(x==n)
cout<<"没找到";
}
for(int i = 0;i <= n/2;i++){
double ans = -1.0*i*i/n*log2(1.0*i/n)-1.0*(n-i)*(n-i)/n*log2(1.0*(n-i)/n);
if(abs(ans - 11625907.5798) <= 0.0001){
printf("%d",i);
}
}
return 0;
}
重点是#include <cmath>的log函数以及约算,算出来不正好。把23333333这种设成常量,不要一直写,算除法的时候加个*1.0