zoukankan      html  css  js  c++  java
  • 犯二的程度

    犯二的程度

    任务描述

    本关任务:编写函数 silly,计算整数(不多于100100位)犯二的程度并返回。

    数字也可以“犯二”,一个整数“犯二的程度”定义为:该数字中包含22的个数与其位数的比值,如果这个整数是负数,则程度增加0.50.5倍,如果还是个偶数,则再增加11倍。

    例如,数字-56782223456−56782223456是个1111位数,其中有33个22,是负数,也是偶数,则它的犯二程度为:3/11×1.5×2,约为0.8181820.818182。

    编程要求

    在右侧编辑器中的Begin-End之间补充代码,计算整数(不多于100100位,数据由平台提供)犯二的程度并返回。具体“犯二的程度”定义如下:

    1. 该数字中包含 2 的个数与其位数的比值;
    2. 如果整数是负数,则程度增加 0.5 倍;
    3. 如果整数是偶数,则再增加 1 倍。

    测试样例

    测试输入:-13142223336

    预期输出:0.818182

    测试输入:122335468912334612

    预期输出:0.444444

    源代码

    #include <iostream>
    using namespace std;
    
    // 函数silly:计算数值有多二
    // 参数:a-存储数值的字符数组,以''结束,所以不需要另一个参数告诉函数数组有多长
    // 返回值:数值犯二的程度
    double silly(char a[]);
    
    int main()
    {
        char s[102];     // 定义存储数值的数组
        cin >> s;     // 输入不超过位的整数
        double sy = silly(s);     // 计算犯二的程度
        cout << sy << endl;     // 输出犯二的程度
        return 0;
    }
    
    double silly(char a[])
    {
        // 请在此添加代码,实现函数silly
        /********** Begin *********/
    	int i,len,count_2=0,judge_np,judge_even;
    	double result;
    	//手动计算字符串长度
    	i=0;
    	while(a[i]!='')i++;
    	len = i;
        //统计有几个2
        for(i=0;i<len;i++){
    		if(a[i]=='2'){
    			count_2++;
    		}
    	}
    	//判断是否是负数
        if(a[0]=='-'){
    		judge_np=1;
    	}else{
    		judge_np=0;
    	}
    	//判断是否是偶数
    	if(a[len-1]%2==0){
    		judge_even=1;
    	}else{
    		judge_even=0;
    	}
    //	cout<<"字符串:"<<a<<endl;
    //	cout<<"是否是负数"<<judge_np<<endl;
    //	cout<<"是否是偶数"<<judge_even<<endl;
    //	cout<<"有几个2"<<count_2<<endl;
    //	cout<<"长度"<<len<<endl;
    	//计算结果
    	if(judge_np)len--;
    	result = 1.0*count_2/len;
    	if(judge_np)result*=1.5;
    	if(judge_even)result*=2;
    	return result;
        /********** End **********/
    }
    
  • 相关阅读:
    spring分布式事务学习笔记
    大家说说看针对微信的这个限制,如何吐槽????
    Easy-Mock 一个H5前端接口模拟神器
    CSS设计模式之三权分立模式篇 ( 转)
    引爆你的Javascript代码进化 (转)
    基于jQuery的软键盘
    基于jQuery的数字键盘插件
    支持触屏的zepto轮播图插件
    支持触屏的jQuery轮播图插件
    基于CSS3的3D旋转效果
  • 原文地址:https://www.cnblogs.com/lightice/p/12691860.html
Copyright © 2011-2022 走看看