1049 Counting Ones (30 point(s))

统计1的个数(Verilog) RTL代码: module test( input [7:0]data_in, output [3:0]out ); // 写法一: reg [3:0]width; reg [3:0]cnt; always@(data_in)begin cnt = 'd0; for(width = 0; width < 8; width = width + 1)begin if(data_in[width]) cnt = cnt + 1'b1; else cnt = 阅读详情

1049 Counting Ones (30 point(s))

The task is simple: given any positive integer N, you are supposed to count the total number of 1's in the decimal form of the integers from 1 to N. For example, given N being 12, there are five 1's in 1, 10, 11, and 12.

Input Specification:

Each input file contains one test case which gives the positive N (≤2​30​​).

Output Specification:

For each test case, print the number of 1's in one line.

Sample Input:

12

Sample Output:

5

找规律。

思路
给一个数,计算所有小于等于这个数的数字中的1的个数和。
找规律题,计算每一位对应的1的个数,然后相加,每一位的1的计算情况分三种情况:
1.如果当前位数字为0,那么该位的1的个数由更高位的数字确定。比如2120,个位为1的个数为212 * 1 = 212(个位的单位为1)。
2.如果当前位数字为1,那么该位的1的个数不但由高位决定,还由低位数字决定。比如2120百位为1,那么百位数字1的个数为2 * 100 + 20 + 1 = 221个(百位的单位为100)。
3.如果当前位数字大于1,那么该位数字1的个数为(高位数+ 1) * 位数单位。比如2120十位为2,那么十位数字1的个数为(21 + 1) * 10 = 220个(十位的单位为10)
4.继续按照上文,2120千位为2,那么千位为1的个数为(0 + 1)*1000 = 1000
5.综上2120以内的所有数字中出现1的个数为1653个。

值得参考的链接:https://blog.youkuaiyun.com/CV_Jason/article/details/85112495

#include<iostream>
using namespace std;
int CountOnes(int n)
{
    int factor = 1,lownum = 0,highnum = 0,cur = 0,countones = 0;
    while(n/factor){
        highnum = n/(factor*10);
        lownum = n - (n/factor)*factor;
        int cur = (n/factor) % 10;
        if(cur == 0) countones += highnum * factor;
        else if (cur == 1) countones += highnum * factor + lownum + 1;
        else countones += ( highnum + 1) * factor;
        factor *= 10;
    }
    return countones;
}
int main(){
    int n; cin >> n;
    cout << CountOnes(n);
    return 0;
}

 

Verilog手撕代码(11)1检测(统计个数、独热码检测、1的位置检测) 那么我们就可以利用一个for循环,把每一位相加,最后再把最终的结果和1比较一下,如果是1,那就是独热码,如果不是1,那就是其他的数。对于一个4位的二进制数,我们对这4位奇偶校验,利用异或门依次进行每一位,最后的结果如果是奇数个1那么4位异或之后结果就是1,如果偶数个1那么结果就是0。独热码是一种二进制编码方式,它的特点是,用来编码这个数的N位bit中,有且只有一位是1,其余位全部为0。因为只有1位是1,所以叫做one-hot (对应的,还有一种编码方式是只有1位是0,其余位都是1,叫做one-cold) 阅读详情

相关推荐

求二进制数中1的个数.pdf

对于一个字节(8bit)的变量,求其二进制表示中“1”的个数,要求算法的执行效 率尽可能地高。

PAT1049:Counting Ones

1049. Counting Ones (30) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The task is simple: given any positive integer N, you are supposed to coun...

weixin_30586085的博客 249

从TI官方手册里挖细节:TPS5430负压电路那个不起眼却救命的Cd电容

本文深入解析TPS5430负压电路中关键Cd电容的作用与设计要点,揭示其在DC-DC电源设计中的重要性。通过对比TI手册和实战案例,详细阐述Cd电容在高频电流回路、能量缓冲和噪声抑制中的核心功能,并提供选型与布局指南,帮助工程师避免芯片烧毁风险,提升电路稳定性。

weixin_27102543的博客 358

统计一个整数的二进制中1的个数

方法一: 比较暴力的方法(通过将二进制右移获得): int _Count(int x) { int cnt = 0; while(x) { cnt += x&1; x >>= 1; } return cnt; } 方法二: 通过这个数与比他小1的数相与得到:(很神奇的一个方...

weixin_30770783的博客 343

SRAM vs RRAM:存算一体芯片选型指南(含最新技术对比)

本文深入对比了SRAM与RRAM在存算一体芯片设计中的核心差异,为硬件工程师和架构师提供实战选型指南。文章从技术本质、性能、功耗、成本及设计风险等多维度剖析,指出SRAM基于成熟CMOS工艺,适合高精度、低延迟场景;而RRAM凭借非易失性和高密度潜力,在超低功耗、固定模型应用中优势明显。决策需综合项目预算、上市时间及技术储备。

e4f5g6h的博客 942

第二十届全国大学生智能车竞赛-地瓜机器人智慧医疗挑战赛技术解析与实战指南

本文深入解析了第二十届全国大学生智能车竞赛-地瓜机器人智慧医疗挑战赛的核心技术。内容涵盖从零搭建数字孪生环境、实现AI视觉任务(二维码识别、引导线追踪、目标检测)、在边缘设备部署轻量化大模型进行图生文描述,到遥操作与自主控制的平滑切换,并提供了基于ROS2的系统集成与赛场实战指南,助力参赛者高效备赛。

weixin_29252171的博客 2778

IC设计基础003:Verilog计算1的数量

采用for循环语句,逐个bit位判断是否为1,为1则累加,否则保持不变,最终输出输入信号中1的数量。如下所示,采用循环语句+移位+逻辑与1+累加来实现1的统计。最终调用函数获得输入信号中1的数量。

IC小鸽的博客 4881

RT-Thread与ROS2通信:micro-ROS在STM32上的移植实践

本文详细介绍了在STM32平台上使用RT-Thread实时操作系统移植micro-ROS实现与ROS2通信的实践方案。通过对比rosserial方案,重点阐述了micro-ROS基于XRCE-DDS协议栈在数据可靠性(丢包率低于1%)、双模式通信(UDP/串口)以及C/C++混合编程方面的优势,为嵌入式设备与ROS2的高效通信提供了完整解决方案。

emacs5lisp的博客 332

1049 Counting Ones (30point(s))

1049 Counting Ones (30point(s)) The task is simple: given any positive integer N, you are supposed to count the total number of 1’s in the decimal form of the integers from 1 to N. For example, given N being 12, there are five 1’s in 1, 10, 11, and 12. Inp

佳迪斯的博客 119

libero烧录信号抓取

提示:如果改了东西需要重新烧录,需要把这两个界面都关闭再libero打开。两个红色的要关闭掉。然后返回libero开始烧录,观测信号(如果只烧录观测从这一步开始就行)等到下面的messige出现以下信息表示run好了。在下图中右侧可以自己设置,设置完之后记得保存一下。run一下,耐心等待,有警告就ok,run完之后。run成功会变绿色,然后点下面的这个看波形。设置抓取信号:在libero打开。打开的就是烧录界面,直接run。

qq_34047965的博客 1426

C#上位机开发实战全流程:从需求到落地,避坑指南+完整代码

作为一名做了5年工业自动化上位机开发的程序员,我踩过的坑比写过的代码还多——从最初串口通信粘包导致数据错乱,到可视化图表卡顿卡死,再到现场异常崩溃无日志可查,每一次踩坑都是一次血泪教训。今天这篇文章,我会把C#上位机开发的全流程拆解开,从需求分析到通信模块、数据可视化,再到异常处理,每个环节都结合工业实际场景,分享真实项目中能用的方案、完整代码和避坑技巧。不管你是刚入门的新手,还是想优化现有项目的老司机,相信都能有所收获。很多新手做上位机开发,一上来就闷头写代码,最后发现做出来的东西不符合现场需求——比如客

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 996

1049 Counting Ones (30 point(s))

题解 数位dp。 #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;cmath&gt; using namespace std; typedef long long ll; ll dp[20]; // 前x位中1出现次数(0~9均是如此) void init() { ...

徐伯莱 305

硬核反坑!YOLOv5训练避坑指南:根治梯度消失、不收敛、检测漏框三大核心问题(附实战代码+调优清单)

数据是基础,超参数是关键,模型是工具,训练策略是保障。梯度消失、不收敛、检测漏框这三大问题,本质上都是“数据-模型-训练”不匹配的结果。梯度消失/爆炸:优先调整学习率策略+梯度裁剪,其次优化模型结构;训练不收敛:优先清洗数据集,其次调优超参数,最后检查配置文件;检测漏框:优先重新聚类锚框,其次增强浅层特征,最后调整推理参数。YOLOv5训练的最高境界,不是调参,而是让数据、模型、训练策略三者完美匹配。按本文的方法反坑,你的YOLOv5训练一定能一次成功!🚀。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 234

1049 Counting Ones (30 point(s))

The task is simple: given any positive integerN, you are supposed to count the total number of 1's in the decimal form of the integers from 1 toN. For example, givenNbeing 12, there are five 1'...

韩江雪de 小屋 532

基于深度学习DNN LSTM网络的光伏发电量预测 完整代码数据 可直接运行

基于深度学习DNN LSTM网络的光伏发电量预测 完整代码数据 可直接运行

2079

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

PATA 1049 Counting Ones (30point(s))

The task is simple: given any positive integer N, you are supposed to count the total number of 1’s in the decimal form of the integers from 1 to N. For example, given N being 12, there are five 1’s in 1, 10, 11, and 12. Input Specification: Each input fil

qq_43520447的博客 181

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

PAT(甲级)1049 Counting Ones (30point(s))

题目 题目链接 思路 题目大意:给出一个数n,找出大小在[0,n]中,且含有数字1的数字个数; 从后往前遍历每一位数字,当前遍历的位置 i 将整个数字分为三部分,i 的左边称为left,右边称为right,位置 i 上的数称为now; 如果 now = 0,那么左边最大是left - 1,注意从零开始,所以左边有 left 种可能,右边有 a 种可能; 如果 now = 1,那么左边可以等于left,但是当左边等于left时,右边只有right + 1种可能; 如果 now >= 2,那么左边可以等于

hjyp的博客 188

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

1049 Counting Ones (30 point(s))

1049 Counting Ones (30 point(s)) The task is simple: given any positive integer N, you are supposed to count the total number of 1’s in the decimal form of the integers from 1 to N. For example, given N being 12, there are five 1’s in 1, 10, 11, and 12. In

GitHub:https://github.com/myp020301 104

1049 Counting Ones (30 point(s)) - C语言 PAT 甲级

看作数学的排列组合问题,遍历计算每一位上 1 出现的次数并相加 * 遍历到每一位,分为三个部分,当前位的数值 now,左侧数值 left,右侧数值 right,now 在个位 i = 1,在十位 i = 10,在百位 i = 100……,则: * now == 0: count += (left * i); * now == 1: count += (left * i) + (right + 1); * now >= 2: count += (left * i) + (i);

有三只土豆 215

1049 Counting Ones (30)(30 point(s)(cj)

1049 Counting Ones (30)(30 point(s)) The task is simple: given any positive integer N, you are supposed to count the total number of 1's in the decimal form of the integers from 1 to N. For example, ...

Cute_jinx的博客 260

【PAT甲级A1049】Counting Ones (30分)(c++)

1049 Counting Ones (30分) 作者:CHEN, Yue 单位:浙江大学 代码长度限制:16 KB 时间限制:400 ms 内存限制:64 MB The task is simple: given any positive integer N, you are supposed to count the total number of 1’s in the decimal form of the integers from 1 to N. For example, given N bein

小庄同学的博客 661

PAT A1049 Counting Ones (30 分)

PAT A1049题目题意分析初次提交代码运行结果改进[^1] 题目 1049 Counting Ones (30 分) 题意 求 1∼N1 \thicksim N1∼N 中 111 的个数 分析 设第 iii 位为数字 bbb 。其前面组成数字 aaa ,后面组成数字 ccc。 nN−1 nN−2… ni+2 ni+1⏞a nib ni−1&nb...

TC的博客 338

【PAT甲级 - C++题解】1049 Counting Ones

📣专栏定位:为想考甲级PAT的小伙伴整理常考算法题解,祝大家都能取得满分!

Newin2020的博客 798

PAT.1049. Counting Ones (30)

原题地址:https://www.patest.cn/contests/pat-a-practise/1049 题目原文: Counting Ones (30) 时间限制 10 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The task is simple: given any positive integer

Mloza的博客 401

1049 Counting Ones

1049 Counting Ones (30 分) The task is simple: given any positive integer N, you are supposed to count the total number of 1’s in the decimal form of the integers from 1 to N. For example, given N bein...

sologala的博客 319
上一篇: 1142 Maximal Clique (25 point(s))
下一篇: 1010 Radix (25 point(s))
coderwait
博客等级 码龄9年 20粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值