OpenJudge NOI 1.5编程基础之循环控制(31-40题)C++ 解题思路

续上一篇文章。OpenJudge NOI 1.5 编程基础之循环控制(21-30题)C++ 解题思路_Leleprogrammer的博客-CSDN博客续上一篇文章OpenJudge NOI 1.5编程基础之循环控制(11-20题) C++ 解题思路_Leleprogrammer的博客-CSDN博客续上一篇文章。https://blog.csdn.net/leleprogrammer/article/details/127164184


目录

31 开关灯 

32 求分数序列和

33 计算分数加减表达式的值

34 求阶乘的和

35 求出e的值

36 计算多项式的值

37 雇佣兵

38 计算多项式的导函数

39 与7无关的数

40 数1的个数


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道题,下一篇文章再来分享解题代码~~~~ 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
2018/07/20 周五 12:53 354 01求平均年龄.cpp 2018/07/20 周五 12:53 327 02财务管理.cpp 2018/07/20 周五 12:53 357 03均值.cpp 2018/07/20 周五 12:53 375 04求整数的和与平均值.cpp 2018/07/20 周五 12:54 375 05最高的分数.cpp 2018/07/20 周五 12:54 371 06整数序列的元素最大跨度值.cpp 2018/07/20 周五 12:55 430 07奥运奖牌计数.cpp 2018/07/20 周五 12:55 281 08多边形内角和.cpp 2018/07/20 周五 12:55 237 09奇数求和.cpp 2018/07/20 周五 12:56 239 10满足条件的数累加.cpp 2018/07/20 周五 12:56 403 11整数的个数.cpp 2018/07/20 周五 12:56 257 12与指定数字相同的数个数.cpp 2018/07/20 周五 12:56 217 13乘方计算.cpp 2018/07/20 周五 12:57 324 14人口增长问.cpp 2018/07/20 周五 12:57 307 15银行利息.cpp 2018/07/20 周五 12:57 433 16买房子.cpp 2018/07/20 周五 12:57 260 17斐波那契数列.cpp 2018/07/20 周五 12:58 461 18鸡尾酒疗法.cpp 2018/07/20 周五 12:58 392 19救援.cpp 2018/07/20 周五 12:58 280 20球弹跳高度的计算.cpp 2018/07/20 周五 12:58 450 21角谷猜想.cpp 2018/07/20 周五 12:59 520 22津津的储蓄计划.cpp 2018/07/20 周五 12:59 400 23药房管理.cpp 2018/07/20 周五 12:59 642 24正常血压.cpp 2018/07/20 周五 13:00 453 25求特殊自然数.cpp 2018/07/20 周五 13:00 387 26统计满足条件的4位数个数.cpp 2018/07/20 周五 13:00 244 27级数求和.cpp 2018/07/20 周五 13:00 296 28分离整数的各个数位.cpp 2018/07/20 周五 13:01 443 29数字反转.cpp 2018/07/20 周五 13:01 341 30含k个3的数.cpp 2018/06/10 周日 14:07 545 31开关灯.cpp 2018/07/20 周五 13:01 360 32求分数序列和.cpp 2018/07/20 周五 13:01 324 33计算分数加减表达式的值.cpp 2018/07/20 周五 13:02 220 34求阶乘和.cpp 2018/07/20 周五 13:02 304 35求出e的值.cpp 2018/07/20 周五 13:02 302 36计算多项式的值.cpp 2018/07/20 周五 13:03 378 37雇佣兵.cpp 2018/07/20 周五 13:03 540 38计算多项式导函数.cpp 2018/07/20 周五 13:03 377 39与7无关的数.cpp 2018/07/20 周五 13:03 331 40数1的个数.cpp 2018/07/20 周五 13:04 485 41数字统计.cpp 2018/07/20 周五 13:04 704 42画矩形.cpp 2018/07/20 周五 13:04 341 43质因数分解.cpp 2018/07/20 周五 13:04 531 44第n小的质数.cpp 2018/07/20 周五 13:05 341 45金币.cpp

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值