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 **********/
    }
    
  • 相关阅读:
    【leetcode】1630. Arithmetic Subarrays
    【leetcode】1629. Slowest Key
    【leetcode】1624. Largest Substring Between Two Equal Characters
    【leetcode】1620. Coordinate With Maximum Network Quality
    【leetcode】1619. Mean of Array After Removing Some Elements
    【leetcode】1609. Even Odd Tree
    【leetcode】1608. Special Array With X Elements Greater Than or Equal X
    【leetcode】1603. Design Parking System
    【leetcode】1598. Crawler Log Folder
    Java基础加强总结(三)——代理(Proxy)Java实现Ip代理池
  • 原文地址:https://www.cnblogs.com/lightice/p/12691860.html
Copyright © 2011-2022 走看看