目录
31 开关灯
#include <iostream>
using namespace std;
int a[5005],n,m;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++) a[i]=0;
for(int k=2;k<=m;k++){
for(int i=k;i<=n;i+=k) a[i]=!a[i];
}
int flag=0;
for(int i=1;i<=n;i++){
if(!a[i]){
if(flag==0) cout<<i;
else cout<<","<<i;
flag++;
}
}
return 0;
}
32 求分数序列和
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int n;
cin>>n;
double q=2,p=1;
double result=0;
for (int i=1;i<=n;++i) {
if (i!=1) {
int nq=q+p;
int np=q;
q=nq;
p=np;
}
result+=q/p;
}
cout<<fixed<<setprecision(4)<<result;
return 0;
}
33 计算分数加减表达式的值
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
int n;
cin>>n;
double result=0;
for (int i=1;i<=n;++i) {
result+=pow(-1,i-1)*(1.0/i);
}
cout<<fixed<<setprecision(4)<<result;
return 0;
}
34 求阶乘的和
#include <iostream>
using namespace std;
int mul(int n) {
int result=1;
for (int i=1;i<=n;++i) {
result*=i;
}
return result;
}
int main() {
int n,result=0;
cin>>n;
for (int i=1;i<=n;++i) {
result+=mul(i);
}
cout<<result;
return 0;
}
35 求出e的值
#include <iostream>
#include <iomanip>
using namespace std;
double mul(double n) {
double result=1;
for (int i=1;i<=n;++i) {
result*=i;
}
return result;
}
int main() {
int n;
cin>>n;
double e=1;
for (int i=1;i<=n;i++) {
e+=1.0/mul(i);
}
cout<<fixed<<setprecision(10)<<e;
return 0;
}
36 计算多项式的值
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main() {
float x,result=0;
int n;
cin>>x>>n;
for (int i=n;i>=0;i--) {
result+=pow(x,i);
}
cout<<fixed<<setprecision(2)<<result;
return 0;
}
37 雇佣兵
#include <iostream>
using namespace std;
int main() {
int m,n,x;
cin>>m>>n>>x;
while (x>0) {
for (int i=1;i<=m;i+=n) {
if (x>=1) {
--x;
} else {
cout<<n;
return 0;
}
}
n=n+m/n;
}
cout<<n;
return 0;
}
38 计算多项式的导函数
这道题讲得好像很复杂的样子……不过很简单
#include <iostream>
using namespace std;
int main() {
int n;
cin>>n;
if (n==0) {
cout<<0;
return 0;
}
for (int i=n;i>0;i--) {
int c;
cin>>c;
cout<<c*i<<" ";
}
return 0;
}
39 与7无关的数
#include <iostream>
using namespace std;
int main() {
int n,result=0;
cin>>n;
for (int i=1;i<=n;++i) {
int i2=i;
bool ok=true;
while (true) {
int w=i2%10;
i2/=10;
if (w==7) {
ok=false;
break;
}
if (i2==0) {
break;
}
}
if (i%7!=0&&ok) {
result+=i*i;
}
}
cout<<result;
}
40 数1的个数
#include <iostream>
using namespace std;
int main() {
int n,result=0;
cin>>n;
for (int i=1;i<=n;++i) {
int i2=i;
while (true) {
int w=i2%10;
i2/=10;
if (w==1) result++;
if (i2==0) break;
}
}
cout<<result;
return 0;
}
剩下5道题,下一篇文章再来分享解题代码~~~~