13年国,埃及分数填空题
link.
遇到除法精度问题,首先看看能不能换成乘法解决问题。
换成乘法可以避免除法运算浮点数运算的溢出等不精确原因
#include<bits/stdc++.h>
using namespace std;
#define MAX 10000
int main(){
int a,b,sum=0;
for(a=1;a<MAX;a++){
for(b=1;b<MAX;b++)
if(2*a*b==45*(a+b)) sum++;
}
cout<<sum/2<<endl;
return 0;}
#include<bits/stdc++.h>
using namespace std;
int a[4]={0,1,2,3},y=0,sum=0;
int main(){
do{
if((a[0]==0&&a[1]==1&&a[2]==2&&a[3]==3)||(a[0]==1&&a[1]==0&&a[2]==2&&a[3]==3)) y++;
sum++;
}while(next_permutation(a,a+4));
cout<<y<<endl;
cout<<sum<<endl;
return 0;}
#include<bits/stdc++.h>
using namespace std;
int main(){
int maxx=pow(111,3);
for(int i=1;i<=maxx/2+3;i+=2){
long long sum=0;
for(int j=i;j<=maxx/2+3;j+=2){
sum+=j;
if(sum==maxx) {cout<<i<<endl;
return 0;}
if(sum>maxx) break;
}
}
return 0;}