OpenJudge NOI 1.5 programming foundation loop control (31-40 questions) C++ problem-solving ideas

Continuation of the previous article. OpenJudge NOI 1.5 Programming Basics Loop Control (21-30 Questions) C++ Problem Solving Ideas_Leleprogrammer's Blog-CSDN Blog Continuation of the previous article OpenJudge NOI 1.5 Programming Basics Loop Control (11-20 Questions) C++ Problem Solving Ideas_Leleprogrammer The blog-CSDN blog continues the previous article. https://blog.csdn.net/leleprogrammer/article/details/127164184


Table of contents

31 switch lights 

32 Find the sequence sum of fractions

33 Evaluate fractional addition and subtraction expressions

34 Finding the sum of factorials

35 Find the value of e

36 Calculating the value of a polynomial

37 Mercenaries

38 Computing derivatives of polynomials

39 Numbers that have nothing to do with 7

40 Number of 1s


31 switch lights 

#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 Find the sequence sum of fractions

#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 Evaluate fractional addition and subtraction expressions

#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 Finding the sum of factorials

#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 Find the value of 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 Calculating the value of a polynomial

#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 Mercenaries

#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 Computing derivatives of polynomials

This question seems to be very complicated...but it is very simple

#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 Numbers that have nothing to do with 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 Number of 1s

#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;
}

There are 5 questions left, and I will share the problem-solving code in the next article~~~~ 

Guess you like

Origin blog.csdn.net/leleprogrammer/article/details/127164315