IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> PTA团体程序设计天梯赛—练习集—L1-017 到底有多二 (15 分)【C / C++ / Python】 -> 正文阅读

[Python知识库]PTA团体程序设计天梯赛—练习集—L1-017 到底有多二 (15 分)【C / C++ / Python】

L1-017 到底有多二 (15 分)

*文章提供者:海南师范大学 ---- 人工智能教育协会 ---- 周雨歆、刘婧怡、王垚儒

(一)题目要求

一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11×1.5×2×100%,约为81.82%。本题就请你计算一个给定整数到底有多二。

输入格式:

输入第一行给出一个不超过50位的整数N。

输出格式:

在一行中输出N犯二的程度,保留小数点后两位。

输入样例1:

-13142223336

输出样例1:

81.82%

(二)代码如下:

方法一:(C)

#include<stdio.h>
#include<string.h>
#define MAXSIZE 60 

int main(){
	char a[MAXSIZE];			//字符型数组存储字符串 
	float n=0;					//浮点型数据n存储数组中包含2的数量 
	float degree;				//degree表示2的程度 
	scanf("%s",&a);
	float length = strlen(a);	//length存储数组a的长度 
	
	for(int i = 0; i < length; i++){	//for循环遍历数组,判断元素是否为2 
		if(a[i] == '2'){
			n=n+1;						//如果判断为2,则n+1 
		}
	}
	if(a[0] == '-'){							//负数只和a[0]有关,如果a[0]是'-',则该数为负数 
		degree = (double)n/(length-1) * 1.5;	//第一位除去,按length-1作为数字位数 
	}
	else{
		degree = (double)n/length;				//正数则length为数字位数 
	}
	if(a[(int)length-1]%2 == 0){				//此处判断是否为偶数,通过最后一位数奇偶判断(对2取余),(int)为强转整型 
		degree = degree * 2.0;
	}
	
	degree = degree *100;						//打印结果为百分制,扩大100倍 
	printf("%.2f%%",degree);					//'%%'为打印'%'号 
	
	return 0;
}

方法二:(C++)

#include<iostream>
#include<iomanip>
#include<string>
using namespace std;

int main(){
    int count=0, n;// cout用于计算输入中2的个数
    string arr; //定义字符串数组存放输入 
    float result=1, result1=1;//result1记录输入为偶数的结果 ,result记录输入为负数的结果    
    cin>>arr;
    n = arr.size();//获取数组长度赋值给n 
    if((arr[n-1]-'0')%2==0){//判断数组最后一位是否为偶数 
        result1 += 1;
    }
    for(int i;i<n;i++){//用for循环遍历数组查找2的个数 
        if(arr[i]=='2'){
            count++;
        }
    }
    if(arr[0]=='-'){//判断有无负号依据题目将结果翻倍 
        result += 0.5;
        n--;
    }
	
    result1=(double)count/n*result*result1*100;
    cout<<setiosflags(ios::fixed)<<setprecision(2);//结果保留两位小数 
	cout<<result1<<"%"<<endl; 
	
    return 0;
}

方法三:(Python)

a = input()    #输入一个整数
b = 1    #正负数判断条件
m = 1    #奇偶数判断条件
n = 0    #整数中包含“2”的个数
num = len(str(abs(int(a))))    #判断输入数字的长度——位数
if int(a) < 0:    #正负判断
    b += 0.5
if int(a) % 2 == 0:    #奇偶判断
    m += 1
for x in a:    #“2”个数判断
    if "2" == x:
        n += 1
c = n / num * b* m * 100    #计算规则
print("{:.2f}%".format(c))

诚挚希望有心者指正,渴望简单的方法。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:35:50  更:2021-07-31 16:36:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/25 14:53:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计