zju pat

2-13. 两个有序序列的中位数(25)(ZJU_PAT 链表 | 数组 ) 阅读详情

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 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 (<=230).

Output Specification:

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

Sample Input:
12
Sample Output:
5

 

 

顺便替浙大 pat 考试 搞个小宣传,大家可以去http://pat.zju.edu.cn/看看,有考试时候的一些习题,参加pat考试也会发个证书的,对锻炼自己编程能力算是不错的。这题主要是求1的个数,因为数据量比较大2的30次次方,暴力后面的肯定是超时。我们可以这么想,比如242这个数,我们可以这么想,可以分为200以下和200以上这两个段,我们只看200以下百位上的数字,从100-199这100个数,百位总共是100个1,然后百位下面的怎么想,我们可以想到从000-199这200个数字中,十位和个位中,每个数字出现的次数是相等的,所以我们可以用200*(1/10),就可以得到000-199这200个数所有的十位和个位上的1。接下来我们考虑200以上,也就是200-242这段数字,因为百位所有情况我们都已经考虑过,所以我们只需要考虑00-42这段数字,也就是可以划成对42求含有1的个数,这样可以一直前进。当然我们要注意一下142的不同之处,也就是开头是1的时候,这个时候没有从100-199的100个1,百位是从100-142 所以需要加上43个1。

还是太水咯,继续努力啊。。。

 

 

#include<iostream>
using namespace std;

long long dp[13];
long long find(long long n)
{
    long long k, len, sum, num, num1, num2, p, i;
   
    k = n;
    len = 0;
    while(k != 0)
    {
        len++;
        k = k/10;        
    }

    sum  = 0;
  
    for(i = len; i >= 1; --i)
    {
         num1 = n/dp[i-1];
         num2 = n-dp[i-1]*num1;

         if(num1 == 0)
         {
             continue;        
         }
         else if(num1 == 1) 
         {
             sum = sum+num2+1; 
             p = ((i-1)*dp[i-1])/10;
             sum = sum+p;
             n = n - num1*dp[i-1]; 
         }
         else 
         {
             sum = sum+dp[i-1];
             p = (i-1)*(num1*dp[i-1])/10;
             sum = sum + p;   
             n = n - num1*dp[i-1];
         }
    } 
    return sum;
     
} 
int main()
{
    long long n, i, j;
        
    dp[0] = 1;
    for(i = 1; i <= 10; ++i)
    {
       dp[i] = dp[i-1]*10 ;      
    }
    j = 1;
    for(i = 1; i <= 30; ++i)
    {
        j = j*2;       
    }
    while(cin>>n)
    {
         cout<<find(n)<<endl;            
    }
    return 0;
}


2-11. 两个有序链表序列的合并(15) (ZJU_PAT 链表 | vector) 阅读详情

相关推荐

7-07. PAT排名汇总(25) (结构体 ZJU_PAT)

7-07. PAT排名汇总(25) (结构体 ZJU_PAT)

5714

PAT - 浙江大学计算机程序设计能力考试简介

日期: 2012-02-27 摘要: PAT - 浙江大学计算机程序设计能力考试简介 宗 旨 浙江大学计算机程序设计能力考试(Programming Ability Test,简称PAT)是由浙江大学计算机科学与技术学院组织的统一考试,旨在培养和展现学生分析问题、解决问题和计算机程序设计的能力,科学评价计算机程序设计人才。 影响力 浙江大学计算机科学与技术学院

一步步,一寸寸,一点点,一天天,慢慢来 1万+

浙江大学PAT

浙江大学PAT平台基本级别,都AC过了,欢迎各位下载。

ZJU PAT (Advanced Level) Practise 解析

PAT - 浙江大学计算机程序设计能力测试在线评判系统 浙大PAT(Advanced Level)题目地址:http://pat.zju.edu.cn/contests/pat-a-practise 下面主要是大致的阶解题思路,代码记录在Github上,请戳这里 1001.A+B Format 简单的模拟题,主要是a+b以后对结果的格式化,注意下细节就可以了 1002.A+B for...

weixin_30920513的博客 326

Altium Designer许可证冲突?手把手教你用Windows防火墙彻底禁止AD联网(附详细截图)

本文详细介绍了如何通过Windows防火墙精准管控Altium Designer的网络权限,解决许可证冲突问题。通过配置入站和出站规则,彻底阻断AD的联网行为,提升软件运行效率。适用于需要稳定使用Altium Designer的工程师,附有详细截图和高级验证方法。

weixin_38170137的博客 423

STM32独立实现CANOpen主机功能:从零构建轻量级控制方案

本文详细介绍了如何在STM32上不依赖CanFestival库,从零构建一个轻量级的CANOpen主机方案。文章深入剖析了CANOpen主机的三大核心功能——NMT网络管理、SDO参数配置与PDO过程数据交换,并提供了从硬件准备、驱动层构建到协议实现的完整代码实战。该方案代码精简,资源占用低,特别适合在资源受限的STM32平台上实现工业控制、电机驱动等场景的稳定通信。

potato的博客 1072

http://pat.zju.edu.cn/contests/pat-practise/1032

1032. Sharing (25) 时间限制 100 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To store English words, one method is to use lin

我不要写标题 4228

KNX智能家居工程设计应用

KNX,是一个起源于欧洲的总线标准,主要应用于家居和楼宇中,对末端电气设备进行总线式的控制,比如照明、空调、地暖、电动窗帘和遮阳设备等等。根据2017年英国著名咨询公司BSRIA的数据报告显示,在中国的智能家居和灯光控制市场,KNX产品的市场份额为各类产品中排名第一,占据了42%的市场份额,远远领先于其他的标准协议。设备中一个继电器表示一路输出,某些功能可能需要用到多个输出,比如1个窗帘AC输出需要占用两路继电器输出,一个继电器用于控制正转,一个用于控制反转,而普通开关输出则需要占用一路继电器输出即可。

hhhh5555666的博客 934

浙江大学计算机程序设计能力考试(PAT)简介

计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学地评价计算机程序设计人才,为企业选拔人才提供参考标准。目前PAT已成为IT界的标准化能力测试,得到包括Google中国、Microsoft、雅虎、网易、百度、腾讯等在内的百余家大中小型各级企业的认可和支持。同时,从19考研起,...

日沉云起的博客 2万+

Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)

本文详细介绍了在Ubuntu 26.04系统上通过Omnibus包安装GitLab CE的完整流程。主要内容包括:环境准备(系统要求、依赖安装)、配置清华镜像源、执行安装命令、修改配置文件、服务管理命令以及常见问题解决方法。文章特别强调了内存要求(建议4GB以上)、首次登录密码获取、HTTPS安全配置等关键点,并提供了性能优化建议和安全设置指导。相比Docker方式,Omnibus安装具有性能更好、管理方便等优势,适合需要私有化部署GitLab的场景。

1373

Android逆向分析

Android 逆向开发是指对已发布的 Android 应用进行分析和破解,以了解应用程序的内部工作原理,获取应用程序的敏感信息,或者修改应用程序的行为。Android应用 Java编写的,利用Android SDK编译代码,并并且把所有的数据和资源文件打包成一个APK(Android Package)文件这是一个后缀名为.apk的压缩文件,apk文件中包含了一个Anddroid应用程序的所有内容,是Android平台用于安装应用程序的文件。

qq_51598534的博客 6294

【亲测免费】 推荐项目:ZJU PAT - 浙江大学PAT考试模拟系统

推荐项目:ZJU PAT - 浙江大学PAT考试模拟系统 项目简介 是一个由开发者lynnprosper创建的开源项目,主要用于浙江大学计算机水平测试(PAT)的在线模拟练习。该项目旨在帮助备考者熟悉PAT考试环境,提供海量题库以进行实战训练。 技术分析 前端 项目前端采用了现代Web开发框架React,这使得页面交互流畅、用户体验良好。React的组件化设计使得代码结构清晰,易于维护和扩展。 后...

gitblog_00097的博客 1791

Spring Boot与Apache Ignite集成:构建高性能分布式缓存和计算平台

Apache Ignite是一个高性能的分布式内存计算平台,支持内存缓存、分布式计算、流处理和机器学习等功能。它提供了低延迟的数据访问和强大的计算能力,适用于需要高性能和可扩展性的应用。将Apache Ignite集成到Spring Boot应用中,可以显著提高应用的性能和可扩展性。Spring Boot的简单配置和Ignite的强大功能相结合,使得开发和部署更加高效。首先,创建一个新的Spring Boot项目。可以通过Spring Initializr(https://start.spring.io/)

九天的专栏 2142

ZJU PAT 1025 反转链表

1025. 反转链表 (25) 时间限制 300 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3

綦侬BLOG 688

RAGFlow本地部署遇阻:解析进度卡顿的排查与修复指南

本文针对RAGFlow本地部署中常见的文档解析进度卡顿问题,提供了详细的排查与修复指南。核心原因是模型下载网络受阻,解决方案是通过修改环境配置文件,将模型下载源切换至国内镜像站,从而快速解决解析停滞问题。

weixin_29297127的博客 341

【WRF-Chem教程第四期上】运行 WRF-Chem 模型

完整介绍运行 WRF-Chem 模型的详细步骤

WW、forever的博客 3113

zju pat1013

//并查集代码 zju pat1013 http://pat.zju.edu.cn/contests/pat-a-practise/1013 #include <iostream> using namespace std; int road[500000][2]; int city[1005]; void init_union(int n) { int i;...

weixin_30709635的博客 101

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ZJU PAT的一些代码

最近为了找实习,开始刷ZJU PAT上的题目,还有8、9道题就快刷完了,现在把部分代码放到github上,由于时间原因,有些代码遗漏掉了,后续可能会补上。。。。 https://github.com/Whosemario/PatSourceCodes

whosemario的专栏 1361

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ZJU PAT 1010

好久没写oj的题解了,今天做了pat 1010的题目,提交代码后才只有19分,最后在网上看到才发现radix的大小是long long级别的啊,那么我们就只能使用二分来查找结果了,那么剩下的就是理清思路了。 如果两个数字都是1,结果肯定是2如果两个数字相同,但不是1,结果肯定是题目输入的那个radix如果两个数字不相同,我们则有确定radix的范围呢?我们假设A的radix已经知道,那么

whosemario的专栏 4891

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ZJU PAT 1008

http://pat.zju.edu.cn/contests/pat-practise/1008 1 #include <stdio.h> 2 int number[102]; 3 int main() 4 { 5 int N; 6 scanf("%d",&N); 7 int i; 8 for(i...

weixin_34018202的博客 97

ZJU PAT 1011

http://pat.zju.edu.cn/contests/pat-practise/1011 示例数据是错的。。。 1 #include <stdio.h> 2 double mat[3][3]={0}; 3 char map[]={'W','T','L'}; 4 int main() 5 { 6 int i,j; 7 for(i=0;i<3;i++) 8 ...

weixin_34248705的博客 81

ZJU PAT 1009

http://pat.zju.edu.cn/contests/pat-practise/1009 #include <stdio.h> #include <cmath> int N; double Poly[2][1002],sPoly[2002]; int main() { for(int i=0;i<2;i++){ ...

weixin_33943836的博客 79

ZJU PAT 1013

http://pat.zju.edu.cn/contests/pat-practise/1013 本来以为会卡时间,偷懒没用并查集,没想到DFS就过了。不过第一次访问标志重置时居然重置的1。。。 PS:想起了扫雷游戏中的蒙板数组。。。用一下,其实不用也行的 1 #include <stdio.h> 2 #include <string.h> 3 #include...

weixin_34358365的博客 121

ZJU PAT 1009 Product of Polynomials

从这贴开始不贴题目了,贴个链接吧 http://pat.zju.edu.cn/contests/pat-practise/1009 1002题的改进版,加法变乘法 1 def ParseList(list): 2 dict = {} 3 for j in range(int(list[0])): 4 a = int(list[j*2+1]) ...

weixin_30642267的博客 89

zju pat 1015

zju pat 1015

剑飞的专栏 873

ZJU PAT 1010 Radix

题目见:http://pat.zju.edu.cn/contests/pat-a-practise/1010 本题采用二分方法搜索进制,注意由于我使用的方法是转换为十进制进行比较,所以C/C++中即使使用了long long 类型也可能会溢出,为方便起见,本题采用Java的BigInteger实现;或者可以考虑自己实现一个大数类。 import java.math.BigInteger; ...

haifengyululu的专栏 184
上一篇: HDU 2438
下一篇: pat的一道无语题
互联网_青花
博客等级 码龄17年 37粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值