WZOI-181至199题答案

题目及AC代码:

181.迭代法求值

#include<bits/stdc++.h>
using namespace std;
int main(){
	double a,b;
	cin>>a;
	b=sqrt(a);
	printf("%.4lf\n",b);
	return 0;
}

182.级数求和

#include<bits/stdc++.h>
using namespace std;
int main(){
	int k,i;
	double s=0;
	cin>>k;
	for(int i=1;;i++){
		s=s+1.0/i;
		if(s>k){
			k=i;
			break;
		}
	}
	cout<<k;
	return 0;
}

183.角谷猜想

#include<bits/stdc++.h>
using namespace std;
int main(){
	long long a,b;
	cin>>a;
	if(a==1){
		cout<<"End";
		return0;
	}
	while(a!=1){
		if(a%2==0){
			cout<<a<<"/2="<<a/2<<endl;
			a=a/2;
		}elseif(a%2==1){
			cout<<a<<"*3+1="<<a*3+1<<endl;
			a=a*3+1;
		}

	}
	
	cout<<"End";
	return 0;
}

184.对对交换

#include<bits/stdc++.h>
using namespace std;
int main(){
	long long a,b;
	cin>>a;

	for(int i=1;i<=a-1;i=i+2){
		cout<<i+1<<" "<<i<<" ";
        }
	
	return 0;
}

185.找规律填数字

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,b,c,d,e,f,h;
	double g;
	while(1){
		cin>>a>>b>>c>>d>>e;
		if(a==0&&b==0&&c==0&&d==0&&e==0){
			break;
		}
		if(b-a==c-b&&c-b==d-c){
			f=b-a;
			for(int i=0;i<5;i++){
				e=e+f;
				cout<<e<<" ";
			}
			cout<<endl;
		}elseif((b*1.0/a==c*1.0/b)&&(c*1.0/b==d*1.0/c)){
			g=b*1.0/a;
			for(int i=0;i<5;i++){
				e=e*g;
				cout<<e<<" ";
			}
			cout<<endl;
		}else{
			for(int i=0;i<5;i++){
				h=e+d;
				cout<<h<<" ";
				d=e;
				e=h;
			}cout<<endl;
		}
	}
	return 0;
}

186.求分数序列和

#include<bits/stdc++.h>
using namespace std;
int main(){
	double a,p=1,q=2,d=0,e;
	cin>>a;
	for(int i=1;i<=a;i++){
		d=d+q/p;
		e=q;
		q=q+p;
		p=e;
	}
	printf("%.4lf",d);
	return 0;
}

187.计算分数加减表达式的值

#include<bits/stdc++.h>
using namespace std;
int main(){
	double a,p=1,q=2,d=0,e,b;
	cin>>a;
		for(int i=1;i<=a;i++){
			if(i%2!=0){
				d=d+1.0/i;
			}else{
				d=d-1.0/i;
			}
	}
	
	printf("%.4lf",d);
	return 0;
}

188.求阶乘的和

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	scanf("%d",&n);
	long long s=0,t=1;
	for(int i=1;i<=n;i++){
  		t=1;
  		for(int j=1;j<=i;j++){
    		    t=t*j;
	        }
        	s=s+t;
        }
  	cout<<s;
 
	return 0;
}

189.求出e的值

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	double s=0,t=1;
	for(int i=1;i<=n;i++){
  		t=1;
  		for(int j=1;j<=i;j++){
    		    t/=j;
		}
    	        s+=t;
        }
  	printf("%.10lf",s+1);
 
	return 0;
}

190.计算多项式的值

#include<bits/stdc++.h>
using namespace std;
int main(){
	long double x,n,s=1,a=1;
	cin>>x>>n;
	for(int i=1;i<=n;i++){
		a=a*x;
		s=s+a;
	}
	printf("%.2Lf",s);
	return 0;
}

191.年龄与疾病

#include<bits/stdc++.h>
using namespace std;
int main(){
	double x,n,s=0,a=0,b=0,c=0;
	cin>>x;
	for(int i=0;i<x;i++){
		cin>>n;
		if(n<19){
			s++;
		}elseif(n>=19&&n<=35){
			a++;
		}elseif(n>=61){
			c++;
		}else{
			b++;
		}
	}
	printf("%.2lf%\n",s*100/x);
	printf("%.2lf%\n",a*100/x);
	printf("%.2lf%\n",b*100/x);
	printf("%.2lf%\n",c*100/x);
	return 0;
}

192.不高兴的津津

#include<bits/stdc++.h>
using namespace std;
int main(){
	longlong a,b,s=0,max=0,c,d;
	for(int i=0;i<7;i++){
		s=0;
		cin>>a>>b;
		s=s+a+b;
		if(s>max){
			max=s;
			c=i+1;
			d=b;
		}
	}
	if(max>8) cout<<c;
	else cout<<"0";
	return 0;
}

193.最长平台

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,a[1001],s=1,max=1;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	for(int i=0;i<n;i++){
		if(a[i]==a[i+1]){
			s++;
			if(max<s){
				max=s;
			}
			
		}else{
			s=1;
		}
	}
	cout<<max;
	return 0;
}

194.雇佣兵

#include<bits/stdc++.h>
using namespace std;
int main(){
	int m,n,x;
	cin>>m>>n>>x;
	int a=m,s=0;  
	m=0;  
	while(x){
		m+=n;
		x--;
		if(m>=a){
			m=a;
			break;
		}
	}
	if(m==a){
		while(m){
		m--;
		s++;
		if(s==n){
			n++;
			s=0;
		}
		if(m==0){
			s=0;
			while(x){
			    m+=n;
			    x--; 
			    if(m>=a){
				m=a;
				break;
			}
		    }
	        }
	    }
	}
        cout<<n;
    return 0;
}

195.计算多项式的导函数

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,a;
	cin>>n;
	if(n==0){
		printf("0");
	} 
	n++;
	while(n--){
	    cin>>a;
	    if(n){
		cout<<a*n<<" ";
	    }
        }
    return 0;
}

196.与7无关的数

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,s=0;
	cin>>a;
	for(int i=1;i<=a;i++){
		if(i%7!=0&&i%10!=7&&i/10%10!=7&&i/100%10!=7){
			s=s+i*i;
		}
	}cout<<s;
	return 0;
}

197.数1的个数

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,s=0,b;
	cin>>a;
	for(int i=1;i<=a;i++){
		int c=i;
		while(c){
			b=c%10;
			if(b==1){
				s++;
			}
			c=c/10;
		}
	}
	cout<<s;
	return 0;
}

198.数字统计

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,s=0,b,d;
	cin>>a>>d;
	for(int i=a;i<=d;i++){
		int c=i;
		while(c){
			b=c%10;
			if(b==2){
				s++;
			}
			c=c/10;
		}
	}
	cout<<s;
	return 0;
}

199.正整数分解

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,s=0;
	cin>>a;
	for(int i=1;i<a;i++){
		if(i%7==0&&(a-i)%3==0){
			if((i>a/2)&&(i%3==0&&(a-i)%7==0)){
				continue;
			}
			s++;
			cout<<i<<" "<<a-i<<endl;
		}
	}
	cout<<s;
	return 0;
}
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值