1得分 2分子量

1、
输入样例:OOXXOXXOOO
输出:10

#include <iostream>
#include <cstdio> 
#include <cstring>
#define maxn 100
using namespace std;
int main(){
    
    
	char str[maxn];
	scanf("%s",str);
	int count = 0;
	int score = 0;
	for(int i = 0;i < strlen(str);i ++){
    
    
		if(str[i]=='O'){
    
    
			count ++;
			score += count;
		}else{
    
    
			count = 0;
		}
	}
	printf("%d",score);
	return 0;
} 

2、
输入样例:C6H5OH
输出:94.108

#include <iostream>
#include <cstdio> 
#include <cstring>
#define maxn 100
using namespace std;
double might(char s){
    
    
	if(s == 'C'){
    
    
		return 12.01;
	}else if(s == 'H'){
    
    
		return 1.008;
	}else if(s == 'O'){
    
    
		return 16.00;
	}else if(s == 'N'){
    
    
		return 14.01;
	}
}
int main(){
    
    
	char str[maxn];
	double sum = 0;
	scanf("%s",str);
	double m = 0;
	for(int i = 0;i < strlen(str);i++){
    
    
		if(str[i]>='A' && str[i] <='Z'){
    
    
			if(str[i -1]>='A' && str[i -1] <='Z'&&i > 0 ){
    
    
				sum += m;
			}
			m = might(str[i]);
		}else{
    
    
			int k = 0;
			for(int j = i; j < strlen(str);j ++){
    
    
				if(str[j]>='A'&&str[j] <='Z')
					break;
				else{
    
    
					k *= 10;
					k += (str[i]-'0');
				}
			}
			sum += k*m;
			m = 0;
		}
		if(i + 1 == strlen(str)){
    
    
			if(str[i -1]>='A' && str[i -1] <='Z'&&i > 0  || i == 0){
    
    
				sum += m;
			}
			
		} 
	}
	printf("%lf",sum);
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/weixin_45867397/article/details/106310824
今日推荐