当前位置: 首页 > news >正文

L1-017 到底有多二 C++解法

题目

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

输入格式:

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

输出格式:

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

输入样例:

-13142223336

输出样例:

81.82%

 思路

  1. 录入数字为字符串;
  2. 遍历字符串,求2的个数;
  3. 分负数和正数情况讨论;负数要 * 1.5,正数要 * 1;
    注意:是否乘偶数系数与正负无关(可能是题目没表述清楚)。

 知识点

精确到小数点后2位,用如下代码:

cout<<fixed<<setprecision(2)<<result<<'%';

 涉及到的知识点可以参考c++保留n位小数输出(百分数形式,保留n位有效数字,设置宽度)_小白yaa的博客-CSDN博客

代码

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;//是否乘偶数系数与正负无关(可能是题目没表述清楚)int oushu(string n) {int m = n[n.length() - 1] - '0';//注意此处要-1才是最后一位!m 为个位if (m % 2 == 0)//一个数的最后一位(即个位)能被2整除,那么这个数就是偶数。{return 2;} else{return 1;}
}int main() {string n;//输入的数字用字符串存储cin >> n;int k = 0;//数字中包含2的个数double result = 1.0;int len = n.length();//字符串的长度//统计数字中2的个数for (int i = 0; i < len; i++){if (n[i] == '2'){k++;}}//首先分为两个大的情况:负数和非负数  然后分别讨论各个情况下是否为偶数的情况 用oushu()函数进行了封装,提高代码的复用性if (n[0]=='-'){result = (double)k / (len - 1)*1.5*oushu(n);} else{result = (double)k / len * oushu(n);}cout << setiosflags(ios::fixed) << setprecision(2) << result*100 << '%' << endl;return 0;
}

http://www.lryc.cn/news/160152.html

相关文章:

  • motionface respeak视频一键对口型
  • LeetCode——顺时针打印矩形
  • C语言课程作业
  • Yolov8魔术师:卷积变体大作战,涨点创新对比实验,提供CVPR2023、ICCV2023等改进方案
  • 基于小波神经网络的空气质量预测,基于小波神经网络的PM2.5预测,基于ANN的PM2.5预测
  • Vue / Vue CLI / Vue Router / Vuex / Element UI
  • Lesson4-2:OpenCV图像特征提取与描述---Harris和Shi-Tomas算法
  • 华为云云耀云服务器L实例评测|部署spring项目端口开放问题的解决 服务器项目环境搭建MySQL,Redis,Minio...指南
  • MySQL内外连接
  • sql:SQL优化知识点记录(十四)
  • 什么是IIFE(Immediately Invoked Function Expression)?它有什么作用?
  • Codeforces Round 866 (Div 2)(A - D)
  • QTday3(QT实现文件对话框保存操作、实现键盘触发事件【WASD控制小球的移动】)
  • WPF基础入门-Class8-资源基础
  • Axure RP PC电商平台Web端交互原型模板
  • Ubuntu目录和linux内核文件用途
  • 更快更强更稳定:腾讯向量数据库测评
  • 【java web】JSP-Java Server Page
  • java文件命令行报错: 找不到或无法加载主类XXX报错及解决
  • 算法训练营day46|动态规划 part08:完全背包 (LeetCode 139. 单词拆分)
  • Java网络编程(二)Socket 套接字(TCP和UDP),以及TCP的回显
  • C++ - 多态语法 - 虚函数使用介绍
  • php获取客户端ip地址及ip所在国家、省份、城市、县区
  • Error: Port Library failed to initialize: -86
  • SOME/IP 支持两种序列化方式:TLV 和 TV
  • Unity之3D物理导航系统
  • 9.4黄金行情是否反转?今日多空如何布局?
  • Win10下使用vim9
  • Flink+Flink CDC版本升级的依赖问题总结
  • Matlab论文插图绘制模板第112期—带阴影标记的图