结果:1048575/524288
1 + 1/(2的19次方) ,写个简单程序计算即可。
#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define DOWN(i,b,a) for(int i=b;i>=a;i--) //#define LOCAL
int main(){
#ifdef LOCAL
freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
#endif // LOCAL
long x=pow(,);
printf("%d/%d",x+x-,x);
return ;
}
结果:5217
计算一下一共有多少天,然后除以7算出一共有多少周即可。
#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define DOWN(i,b,a) for(int i=b;i>=a;i--) bool isLeap(int y){
return (y%==)||((y%!=)&&y%==);
}
//#define LOCAL
int main(){
#ifdef LOCAL
freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
#endif // LOCAL
int day=;
FOR(i,,){
if(isLeap(i))
day+=;
else day+=;
}
printf("%d",day/);
return ;
}
结果:31
如果将最终的乘积分解因数,末尾的零只能由 2 x 5 产生。 而2的个数远远比5多,所以我们只要统计 含有因数 5 的个数就可以啦。
#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define DOWN(i,b,a) for(int i=b;i>=a;i--) bool isLeap(int y){
return (y%==)||((y%!=)&&y%==);
}
#define LOCAL
int main(){
#ifdef LOCAL
freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
#endif // LOCAL
int x;
int cnt=;
while(scanf("%d",&x)!=EOF){
while(x%==){
x/=;
cnt++;
}
}
printf("%d",cnt);
return ;
}
结果:1905
遍历一遍,统计可能比这个数小的“幸运数字”数量即可。
#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define DOWN(i,b,a) for(int i=b;i>=a;i--)
#define ll long long ll getNum(int a,int b,int c){
ll num=;
REP(i,a)num*=;
REP(i,b)num*=;
REP(i,c)num*=;
return num;
}
#define LOCAL
int main(){
#ifdef LOCAL
freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
#endif // LOCAL
ll x;
scanf("%lld",&x);
int a,b,c;
a=b=c=;
while(x%==){
x/=;
a++;
}
while(x%==){
x/=;
b++;
}
while(x%==){
x/=;
c++;
}
x=getNum(a,b,c);
int cnt=;
REP(i,a+*(b+c)){
REP(j,a+b+*c){
REP(k,a+b+c){
ll tmp=getNum(i,j,k);
if(tmp>=&&tmp<=x)
cnt++;
}
}
}
printf("%d",cnt);
return ;
}
结果:size/3
递归实现了一个... 精度可能会存在问题。据说可以直接贪心,更简单。
#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define DOWN(i,b,a) for(int i=b;i>=a;i--)
const int maxn = 5e5+;
int N,S;
int a[maxn];
double QAQ(int *a,int n,double remain,double AVG){
double avg=remain/(double)n;
double sqr_sum=;
REP(i,n){
if(a[i]<avg){
sqr_sum+=(a[i]-AVG)*(a[i]-AVG);
remain-=a[i];
}else{
if(i==){
REP(j,n){
sqr_sum+=(avg-AVG)*(avg-AVG);
remain-=avg;
}
break;
}
else sqr_sum+=QAQ(a+i,n-i,remain,AVG);//
break;
}
}
return sqr_sum;
}
void TAT(){
REP(i,N){
scanf("%d",&a[i]);
}
sort(a,a+N);
printf("%f\n",sqrt(QAQ(a,N,S,(double)S/(double)N)/N));
}
#define LOCAL
int main(){
#ifdef LOCAL
freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
#endif // LOCAL
while(scanf("%d %d",&N,&S)!=EOF){
TAT();
}
return ;
}