您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

训练题解(20210525)

求出e的值

法一

#include<stdio.h>
#include<iostream>
using namespace std;
double jchen(int x){//自定义函数求阶乘,函数为double类型 
	double sum1=1;//不要定义成 0
	for(int i=1;i<=x;i++){//小于等于 x
		sum1*=i;
	}
	return sum1;
}
int main(){
	int n;
	cin>>n;
	double sum=1;
	for(int i=1;i<=n;i++){//要小于等于 n
		sum+=1/jchen(i);
	}
	printf("%.10f",sum);//注意题目要求输出格式
	return 0;
}
#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
	double n;
	cin>>n;
	double sum=1,ct=1;//ct保存阶乘的值,不断更新
	for(int i=1;i<=n;i++){
		ct*=i;
		sum+=1/ct;
	}
	printf("%.10f",sum);
	return 0;
}

整数奇偶排序

#include<iostream>
int a[11];//保存偶数 
int b[11];//保存奇数 
int c[11];//循环输入数据 
using namespace std;
int main(){
	//题目要求10个数 
	while(cin>>c[0]>>c[1]>>c[2]>>c[3]>>c[4]>>c[5]>>c[6]>>c[7]>>c[8]>>c[9]){//循环输入10个数 
		//判断奇偶 
	int q=0;//记录偶数个数 
	int w=0;//记录奇数个数 
		for(int i=0;i<10;i++){
			if(c[i]%2==0){
				a[q]=c[i];
				q++;
			}else{
				b[w]=c[i];
				w++;
			}
	} 
	//分别对奇,偶数排序 
	for(int i=0;i<w;i++){
		for(int j=i+1;j<w;j++){
			int ct;
			if(b[i]<b[j]){
				ct=b[i];
				b[i]=b[j];
				b[j]=ct;
			}
		}
	}
	//输出 奇数 
	for(int i=0;i<w;i++){
		cout<<b[i]<<" ";
	}
	for(int i=0;i<q;i++){
		for(int j=i+1;j<q;j++){
			int t;
			if(a[i]>a[j]){
				t=a[i];
				a[i]=a[j];
				a[j]=t;
			}
		}
	}  
	//输出 偶数 
	for(int i=0;i<q;i++){
		cout<<a[i]<<" ";
	}
	cout<<endl;//结束换行 
}
	return 0;
} 

字母数

#include<iostream>
using namespace std;
int main(){
	string s;//读入字符串 
	cin>>s;
	char c;//读入字符 
	cin>>c;
	int sum=0; //记录字符在字符串中出现次数 
	for(int i=0;i<s.length();i++){
		if(s[i]==c){//出现就加起来 
			sum++;
		}
	}
	cout<<sum;//输出答案即可 
	return 0;
} 

[NOIP2008]ISBN号码

#include<iostream>
using namespace std;
int main(){
	string s;//当做字符串读入 
	cin>>s;
	//数组下标从 0 开始 
	int sum=(int(s[0])-48)*1+(int(s[2])-48)*2+(int(s[3])-48)*3+(int(s[4])-48)*4+(int(s[6])-48)*5+(int(s[7])-48)*6+(int(s[8])-48)*7+(int(s[9])-48)*8+(int(s[10])-48)*9;
	sum=sum%11;//识别码
	int t=int(s[12])-48; //字符串最后一位转换成数字 
	if(sum==10){//识别码等于10特判 
		if(s[12]=='X'){//如果等于大写字母,ISBN 号码正确 
			cout<<"Right";
		}else{
			for(int i=0;i<s.length()-1;i++){//输出到字符串倒数第二个 
			cout<<s[i];
		}
		cout<<"X";//最后一位单独输出 
		}
	}else{//同上 
		if(sum==t){
			cout<<"Right";
		}else{
			for(int i=0;i<s.length()-1;i++){
				cout<<s[i];
			}
			cout<<sum;
		}
	}
	return 0;
} 

班级排名

#include<iostream>
#include<algorithm>//使用sort排序 
using namespace std;
struct put{
	string s;//学号 
	int x;//成绩 
	int y;//保存输入顺序 
}a[520];
//函数里是结构体类型 
int cmp(put a,put b){//自定义判断的顺序 
	if(a.x==b.x) return a.y<b.y;//如果成绩相同,就按照输入顺序输出 
	return a.x>b.x;//否则按照成绩从大到小输出 
}
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i].s>>a[i].x;//读入 学号 ,成绩 
		a[i].y=i;//记录输入顺序 
	}
	sort(a,a+n,cmp);//排序 
	for(int i=0;i<n;i++){
		cout<<a[i].s<<endl;//输出学号 
	}
	return 0;
} 

打印图形

#include<iostream>
using namespace std;
int main(){
	//注意空格,字符的规律,一一输出即可 
	char c;
	cin>>c;
	int n=int(c)-int('A');//判断输入字符 c与 A相差几位 
	int w=int(c);//字符 C 的ACSSLL码 
	int w1=int('A');//字符 A 的ACSSLL码 
	for(int i=0;i<=n;i++){//i小于等于 n 
		int q=w;
		int q1=w1;
		for(int j=0;j<i;j++){
			cout<<" ";
		}
		for(int j=i;j<=n;j++){
			cout<<char(q);//转换类型,输出字符 
			q--;
		}
		for(int j=n;j>i;j--){
			cout<<char(q1);
			q1++;
		}
		w--;//更新下一行第一个字符 
		cout<<endl;
	}
	return 0;
} 

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进