17国a1 prev-permutation(与next-permutation)对应
#include <iostream>
using namespace std;
int main()
{ double sum=0;//便于强转
int a=1;
while(1){
sum+=1.0/a;
if(sum>=15){
cout<<a;
return 0;
}
a++;
}
return 0;
}
15校3-x的x次幂
link
【重点】
请把x的值计算到小数后6位(四舍五入),并填写这个小数值。
我用的float运行很久一直没有出结果,推测应该是float装不下,应该用double,c语言中double是比float常用的。用double结果是对的
#include<bits/stdc++.h>
using namespace std;
int main(){
double x;
double z=0.000001;
for(x=2;x<=3;x=x+0.00000001){
if(fabs(pow(x,x)-10.0)<z){
printf("%.7f",x);
return 0;
}
}
return 0;}
15省Ca3-奇妙的数字
link
【思路】用数组标志
【我的做法】用的数组,但是while循环太多了,程序运行很久一直不出结果。
【审题】我审题出错了,说的是“它的平方和立方正好把0~9的10个数字每个用且只用了一次。”没有说包括本身在内的数,0-9的数字只用一次。
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
for(a=9;a<1000;a++){
int s1=a*a;
int s2=a*a*a;
int szi[10]={1,1,1,1,1,1,1,1,1,1};
while(s1){
szi[s1%10]--;
s1/=10;
}
while(s2){
szi[s2%10]--;
s2/=10;
}
if(szi[0]==0&&szi[1]==0&&szi[2]==0&&szi[3]==0&&szi[4]==0&&szi[5]==0&&szi[6]==0&&szi[7]==0&&szi[8]==0&&szi[9]==0){
printf("%d",a);
break;
}
}
return 0;}