求表格中出现#N/A能同时算出 N- (从0到9)

您还可以使用以下方式登录
当前位置:&>&&>& > excel简单表格转成mapgis
excel简单表格转成mapgis
EXCEL简单表格转成MAPGIS格式的标准操作步骤?
在工作中制作专题图时常需要将EXCEL表格插入到MAPGIS图形中去,通常我们都需要将EXCEL表在MAPGIS中重新矢量化才可以。实际上对于一些结构比较简单的表格我们可以通过MAPGIS的报表定义模块将其转换成MAPGIS文件。
例如,现有一个EXCEL文件,(注意:如果表格数据中有空值请用一个无意义的值填写,用于占位)选择数据区用“复制”命令
1)打开MAPGIS的“报表编辑”模块,选择“\文件\新建报表文件”
2)选择“\文件\页面设臵”功能设臵表格幅面,默认为标准A4。
3)在工作区按鼠标右键选择缩小窗口,单击工作区,显示出工作幅面,可以同样用鼠标右键选择放大缩小调,将页面调整到合适位臵。
4)选择“\构造表格\初始表宽\”功能设臵表格的单元高宽(如下图)。
5)选择“\构造表格\构造固定式表\”功能,在页面左上角单击鼠标左键,拖动鼠标,同时注意状态栏中显示的表格行列数,直到满足要求后,在单击鼠标左键确定,表格构造完成。
6)选择“\建索引\编辑区块\”功能,在已经构造好的表格左上方第一个单元格内单击鼠标左键,拖动鼠标到右下角最后一个单元个内,单击鼠标左键确认。(实际这一步是用来选择数据的粘贴区域,可根据实际情况选择范围。)
7)选择“\建索引\粘贴剪切版内容\”功能,即可将剪贴板上的内容粘贴到相应的单元格中。
8)如果需要调整表格的高宽和注释位臵,可以用“构造表格”和“单元”菜单中的相应工具调整。
9)调整完成后用“\文件\生成MAPGIS数据\”功能将表格文件转成点、线文件,再用“\文件\保存文件\保存图元文件\”功能将数据保存成点、线文件,就可以在编辑状态下调用了。
投影变换的基本概念
地图投影的基本问题乃是如何将地球表面(椭球面或圆球面)表示在地图平面上。由于地球椭球面或圆球面是不可展开的曲面,即不可能展开成水面。而地图又必须是一个平面,所以将地球表面展开成地图平面必然产生裂隙或褶皱。在编制地图中,要求(在地图上)得到连续的经纬网格,有裂隙或重叠的经纬网格不符合编图要求。如果采用简单的方法将有裂隙或重叠的经纬网“拉伸”或“压缩”使之连续,也不能符合编制地图的实际需要,因此,编制地图必须采用地图投影的方法,将地球表面的经纬网格用各种方法投影到地图平面上,才能满足多种编图要求的各种连续的经纬网格。
地图投影即为地球椭球表面(或地球球体表面)与地图平面之间点与点(或线与线)相对应。如设地球表面上某一点的地理坐标为Q、λ,其地图平面上相应点的直角坐标为x,y,则表示地球表面经线和纬线的两族平面曲线的方程为: Q = F1(x,y)
λ= F2(x, y)
对x和y分别得出的:
x = f1(Q, λ)
y = f2(Q, λ)
当函数f1和f2在表象区域内连续和单值时,上述方程表面曲面上坐标为Q,λ的一点在平面上只有一个点与之对应,我们把这个方程视为地图投影的一般方程。可以说,地图投影就是建立地球表面上点(Q,λ)和平面上的点(x,y)之间的函数关系式。地图投影学就是研究地球表面上的点或线表示在地图平面上的理论与方法。
地图投影的基本要素
大地测量中用水准测量方法得到的地面上各点的高程是依据一个理想的水准面来确定的,这个水准面称为大地水准面。大地水准面所包围的球体称为大地球体。以一个大小和形状同它极为接近的旋转椭球面来代替,以随圆的短轴(地轴)为轴旋转而成的椭球面称为地球椭球面。
椭球体的元素与公式如下:
af=(a-b)/a
第一偏心率:
e2=(a2-b2)/a2
第二偏心率:
ep2=(a2-b2)/b2
其中:长半径a(赤道半径),短半径b(极轴半径),扁率af,第一偏心率e,第二偏心率ep。
地球椭球体表面上的基本概念:
赤道平面:垂直于地轴,并通过地心的平面。
赤道:赤道平面与地球表面相交的大圆圈(交线)。
纬圈或(纬线):平行于赤道的各个圆圈。显然赤道是最大的一个平行圈,它的半径为a。
线圈(经线)或子午圈:通过地球表面垂直于赤道面的平面叫经面或子午面,它和地球表面相交的线。所有的子午圈长度彼此都相等,均为一长半径等于
短半径等于b的椭圆。
法线:由地球椭球体上的任一点可以引一垂线垂直于该点的地平线(切线),这条垂线称为法线。
地理纬度(简称纬度):法线与赤道面相交所构成的角。通常用希腊字母Q表示,纬度以赤道为0°,向北、南两极各以90°计算,向北叫北纬,向南叫南纬。
地理经度(简称经度):通过地球表面上某一点的纬线面与起始经线表面的夹角。通常以然腊字母λ表示。
地面上任一点的位臵,在测绘工作中通常是用经度(λ)和纬度(Q)来决定,写成M(φ,λ)。
地理坐标系:经线和纬线是地球表面上两组正交(相交为90°)的曲线,这两组正交的曲线构成的坐标,称为地理坐标系。
经差:地表面某两点经度值之差。
纬差:某两点纬度值之差。
如若两点在同一经线上,其经差为零,如在同一纬线上,其纬差为零。
关于地球椭球体的大小,由于采用不同的资料推算,椭球体的元素值是不同的。 世界各国常用的地球椭球体的数据:
椭球体名称 年代 长半轴a 短半轴b 扁率e
克拉索夫斯基
第十六界IUUG
第十七界IUUG
第十八界IUUG
我国1952年以前采用海福特椭球(该椭球1924年被定为国际椭球),从1953年起,开始改用克拉索夫斯基椭球。1978年我国决定采用国际大地测量协会所推荐的“1975年基本大地数据”中给定的椭球参数,并以此建立了我国新的、独立的大地坐标系,形成了1980年的西安坐标系。
等面积球体半径:使球体的表面积等于地球椭球体表面积。
等体积球体半径:使球体的体积等于椭球体的体积。
地图投影的分类
根据变形性质的投影分类
等面积投影
根据正轴投影时经纬网形状的投影分类
伪圆锥投影
伪圆柱投影
伪方位投影
多圆锥投影
经纬线形状:
对于一个投影,较完整的名称宜兼有两种分类,例如等角圆锥投影,等面积方位投影,等距离圆柱投影等
地图投影变换
地图投影变换是研究从一种地图投影点的坐标变换为另一种地图投影点的坐标的理论和方法。在大地测量和地形测量中,往往需要进行不同坐标系间的坐标变换,即坐标换带计算。随着计算机地图制图的发展,研究地图投影变换的理论和方法日益重要和迫切,因为在采用制图自动仪作业中,必须首先提供从一种地图投影点的坐标变换为另一种地图投影点的坐标的关系式即数学模式,才能进行这种作业,因为如果没有这两种不同投影点的坐标变换关系式,就无法编制出合乎变换要求的,适用于电子计算机进行变换所需要的程序设计,所以,地图投影变换已成为计算机地图制图的一个组成部分。
为了适应计算机地图制图,信息系统建设,遥测图象显示和定位,以及满足空间遥感技术和拓朴变换的需要,地图投影变换已逐步发展成为研究空间数据处理,以及空间点位和平面点变换的理论和方法及其应用的数学制图学的一个分支学科。地图投影变换可广义地理解为研究空间数据处理,变换及应用的理论和方法,它可表达为:
(x',y',z')---(φ,λ)---(x,y)---(X,Y)
地图投影变换可狭义地理解为建立两平面场之间点的一一对应的函数关系。 高斯-克吕格投影
高斯-克吕格(GAUSS-KRUGER)是等角横切椭圆柱投影,由德国数学家高斯提出,后经克吕格扩充并推倒出计算公式,故称为高斯-克吕格投影,简称高斯投影。该投影以中央经线和赤道投影后为坐标轴,中央经线和赤道交点为坐标原点,纵坐标由坐标原点向北为正,向南为负,规定为X轴,横坐标从中央经线起算,向东为正,向西为负,规定为Y轴。所以,高斯-克吕格坐标系的X、Y轴正好对应MAPGIS坐标系的Y和X。
为了控制变形,本投影采用分带的办法。我国1:2.5-1:50万地形图均采用6度分带;1:1万及更大比例尺地形图采用3度分带,以保证必要的精度。6度分带从格林威治零度经线起,每6度分为一个投影带,全球共分为60个投影带。东半球的30个投影带的中央经线用 L0=6n-3 计算(n为投影带带号),从0到180度,其编号为1-30。西半球也有30个投影带,从-180度回到0度,其编号为31-60,各带的中央经线用L0=6(n-30)-3-180计算。该投影带将地球划分为60个投影带,每带经差为6度,已被许多国家作为地形图的数学基础。一般从南纬度80到北纬度84度的范围内使用该投影。3度分带法从东经1度30分算起,每3度为一带。这样分带的方法在于使6度带的中央经线均为3度带的中央经线。但是,在标准比例尺图幅编号中,带号是从西经-180度算起,每6度为1带,自西向东1-60。这样,我们国家的高斯带号在标准图幅编号中,要加30,如20带,表示为J50等。 6度分带投影区的代号与其所对应的经度范围如6度分带图表所示。
由于高斯-克吕格投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,使用时只需变一个带号即可。因此,计算一个带的坐标值,百度搜索“就爱阅读”,专业资料、生活学习,尽在就爱阅读网92to.com,您的在线图书馆!
欢迎转载:
推荐:    博客分类:
题目:
0 1 2 3 4 5 6 7 8 9
_ _ _ _ _ _ _ _ _ _
要求在横线上填入数字,使得每个数字分别是上面对应数字在下面出现的次数
分析: 设下面数字分别为 n0 n1 n2 n3...n9,表示对应数字出现的次数

n0 + n1 + n2+...+n9 = 10& A式 (次数和==横线的个数)
1*n1 + 2*n2 + 3*n3+...+9*n9 = 10& B式
由B式知:0&=n5~n9&=1,且n5+n6+n7+n8+n9==1,如果n5=n6=n7=n8=n9=0,则n0下面的数字&=5,说明n(&=5)有一个为1,与假设不符。
知n0&=5,且n1&=2,n2&=1,则n0+n1+n2&=9,与10相比还差1,这个“1”只能放在0下面,放在其它位置都不符合要求。则最终结果是6 2 1 0 0 0 1 0 0 0
这种问题有一个通用结论:(从网上看到的)
n0 = n-3
n1 = 2
n2 = 1
n-3=1
浏览: 105809 次
来自: 苏州
谢谢,很有用
this.init(); 类都没初始化好,this没用的。
上面代码有点小问题,最新代码:
public class Pr ...
测试10 million的以内的数据,算出所有素数时间在500 ...
文章中说错了:如果只是找一个数在不在其中,则可以直接遍历一次, ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'【数学】急:求数字信号处理练习题的答案1.一个五点序列x(n) ={1,0,2,1,3} (n=0,1,2,3,4)(1)求出 x(n) *x(n) ; (2)求出 x(n) (5) x(n) ; (3)线性卷积如果用圆周卷积代替,有什么条件限制?2.求出有限长序列 的N点DFT(闭合表达式).3.频谱分析的模拟信号以8kHz被抽样,计算了512个抽样的DFT.试确定频谱抽样之间的频率间隔.-学路网-学习路上 有我相伴
急:求数字信号处理练习题的答案1.一个五点序列x(n) ={1,0,2,1,3} (n=0,1,2,3,4)(1)求出 x(n) *x(n) ; (2)求出 x(n) (5) x(n) ; (3)线性卷积如果用圆周卷积代替,有什么条件限制?2.求出有限长序列 的N点DFT(闭合表达式).3.频谱分析的模拟信号以8kHz被抽样,计算了512个抽样的DFT.试确定频谱抽样之间的频率间隔.
来源:互联网 &责任编辑:鲁倩 &
数字信号处理有什么用即数字信号处理器作用:数字信号处理是研究用数字方法对信号进行分析、变换、滤波、检测、调制、解调以及快速算法的一门技术学科。但很多人认为:数字信号处理主要是...数字信号处理工程师是怎么养成的有一些人提到嵌入式的DSP芯片,这个不要和数字信号处理混为一谈,它不是数字信号处...所以不要急。如果题主无考研打算,本科一样也有活路,目前信号处理技术处于不断发展...数字信号处理和信号与系统哪个更容易考了?signalprocessor的简称,即数字信号处理器数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域...下面关于数字信号处理特点的说法中,不正确的是()。B答案解析:数字信号是用数字序列表示的信号,数字信号处理就是通过计算机或专用处理设备,用数值计算等数字的方式对数字序列进行各种处理,将信号变换成符合需要的某种...急急,请帮帮忙数字信号处理题:序列x(n)=U(n)+U(n-4),求该序列...z变换(1+z^(-4))/(1-z^(-1))傅立叶变化:(1+e^(-4jw))/(1-e^(-jw))急:求数字信号处理练习题的答案1.一个五点序列x(n)={1,0,2,1,3}(n=0,1,2,3,4)(1)求出x(n)*x(n);(2)求出x(n)(5)x(n);(3)线性卷积如果用圆周卷积代替,有什么条件限制?2.求出有限长序列的N点DFT(闭合表达式).3.频谱分析的模拟信号以8kHz被抽样,计算了512个抽样的DFT.试确定频谱抽样之间的频率间隔.(图2)急:求数字信号处理练习题的答案1.一个五点序列x(n)={1,0,2,1,3}(n=0,1,2,3,4)(1)求出x(n)*x(n);(2)求出x(n)(5)x(n);(3)线性卷积如果用圆周卷积代替,有什么条件限制?2.求出有限长序列的N点DFT(闭合表达式).3.频谱分析的模拟信号以8kHz被抽样,计算了512个抽样的DFT.试确定频谱抽样之间的频率间隔.(图4)急:求数字信号处理练习题的答案1.一个五点序列x(n)={1,0,2,1,3}(n=0,1,2,3,4)(1)求出x(n)*x(n);(2)求出x(n)(5)x(n);(3)线性卷积如果用圆周卷积代替,有什么条件限制?2.求出有限长序列的N点DFT(闭合表达式).3.频谱分析的模拟信号以8kHz被抽样,计算了512个抽样的DFT.试确定频谱抽样之间的频率间隔.(图7)急:求数字信号处理练习题的答案1.一个五点序列x(n)={1,0,2,1,3}(n=0,1,2,3,4)(1)求出x(n)*x(n);(2)求出x(n)(5)x(n);(3)线性卷积如果用圆周卷积代替,有什么条件限制?2.求出有限长序列的N点DFT(闭合表达式).3.频谱分析的模拟信号以8kHz被抽样,计算了512个抽样的DFT.试确定频谱抽样之间的频率间隔.(图9)急:求数字信号处理练习题的答案1.一个五点序列x(n)={1,0,2,1,3}(n=0,1,2,3,4)(1)求出x(n)*x(n);(2)求出x(n)(5)x(n);(3)线性卷积如果用圆周卷积代替,有什么条件限制?2.求出有限长序列的N点DFT(闭合表达式).3.频谱分析的模拟信号以8kHz被抽样,计算了512个抽样的DFT.试确定频谱抽样之间的频率间隔.(图11)急:求数字信号处理练习题的答案1.一个五点序列x(n)={1,0,2,1,3}(n=0,1,2,3,4)(1)求出x(n)*x(n);(2)求出x(n)(5)x(n);(3)线性卷积如果用圆周卷积代替,有什么条件限制?2.求出有限长序列的N点DFT(闭合表达式).3.频谱分析的模拟信号以8kHz被抽样,计算了512个抽样的DFT.试确定频谱抽样之间的频率间隔.(图13)这是用户提出的一个数学问题,具体问题为:急:求数字信号处理练习题的答案1.一个五点序列x(n) ={1,0,2,1,3} (n=0,1,2,3,4)急急,请帮帮忙数字信号处理题:序列x(n)=U(n)+U(n-4),求该序列...z变换(1+z^(-4))/(1-z^(-1))傅立叶变化:(1+e^(-4jw))/(1-e^(-jw))防抓取,学路网提供内容。(1)求出 x(n) *x(n) ; 数字信号处理(第三版)程佩青课后习题答案帮阁下找到一份《数字信号处理》习题答案,看看能不能帮上,地址在参考资料里防抓取,学路网提供内容。(2)求出 x(n) (5) x(n) ; 急需《数字信号处理原理及其MATLAB实现》的习题答案答案一般很难找的,具体问题可以贴一下防抓取,学路网提供内容。(3)线性卷积如果用圆周卷积代替,有什么条件限制?实现数字信号处理的方法有哪些用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。例如:滤波、检测、变换、增强、估计、识别、参数提取、频谱分析等。一般地讲,数字信号处理涉及三个步骤...防抓取,学路网提供内容。2.求出有限长序列 的N点DFT(闭合表达式)."数字信号处理"和"信号与系统"有什么不同和联系?&&数字信号处理&&可以单独学,因为数字域的特点是比连续时间域的直观,简单。信号与系统是数字信号处理的前导课程,建议先学,但是防抓取,学路网提供内容。3.频谱分析的模拟信号以8kHz被抽样,计算了512个抽样的DFT.试确定频谱C语言求指定数字的和急!!!!问:Description求所有能被M整除且不含有重复数字的三位数的和。(三位数即...答:直接遍历M的整数倍的数不就完了,为啥要从100遍历到999pm=m;while防抓取,学路网提供内容。抽样之间的频率间隔.求数字与生活相声台词求急啊!!!答:相声数字与生活甲:改革开放三十年来,我们国家发生的变化太大了。乙:有目共睹哇。甲:我们广宗县的变化也不小,县城里到处是高楼林立,生活小区一个比一个建的好。乙:是这样防抓取,学路网提供内容。我们通过互联网以及本网用户共同努力为此问题提供了相关答案,以便碰到此类问题的同学参考学习,请注意,我们不能保证答案的准确性,仅供参考,具体如下:急。。。求四位数的全部骂人数字话语问:前几天用四个数字搞了个手机卡的密码,让我给忘了...急啊..答:有可能是1464防抓取,学路网提供内容。用户都认为优质的答案:C语言编程:输入一个整数,求各位数字之和..答:intnumCombine=0;intnumCount=1;intnumSplit=0;scanf("%d",&numCombine);while(nu防抓取,学路网提供内容。1.&(1)线性卷积数字各代表什么意思问:如:1376一厢情愿要全的,求哥哥姐姐帮个忙。小弟谢了!答:不知道问什么啊??防抓取,学路网提供内容。&&(2)循环卷积数字游戏4863894是什么意思?求解急用求解!!!答:“滚犊子”的意思防抓取,学路网提供内容。见插图.(3)L&&&M&+&N&-1求带有数字的歌的歌词,急急急!!!!!(10首以...问:格式:歌名:带数字的歌词答:发如雪---周杰伦繁华如三千东流水,我只取一瓢爱了解,只恋你化身的蝶一千年以后――林俊杰因为在一千年以后世界早已没防抓取,学路网提供内容。2.&太累了.急求解数字密码的高手、帮忙解这段密码:...答:答案:我是真的很爱你。手机键盘密码,未加标点。防抓取,学路网提供内容。学路网 www.xue63.com 学路网 www.xue63.com 求拓展急速60秒1-30数字图片???急答:1:E2:兔子3:迎客松(黄山)4:少.林.寺5:武林外传6:鹿7:立.邦/漆标志8:长城(八达岭)9:酒盒10:十.字'架11:筷子12:十二生肖13:K防抓取,学路网提供内容。数字信号处理(第三版)程佩青课后习题答案帮阁下找到一份《数字信号处理》习题答案,看看能不能帮上,地址在参考资料里急需《数字信号处理原理及其MATLAB实现》的习题答案答案一般很难找的,具体问题可以贴一下实现数字信号处理的方法有哪些用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。例如:滤波、检测、变换、增强、估计、识别、参数提取、频谱分析等。一般地讲,数字信号处理涉及三个步骤..."数字信号处理"和"信号与系统"有什么不同和联系?&&数字信号处理&&可以单独学,因为数字域的特点是比连续时间域的直观,简单。信号与系统是数字信号处理的前导课程,建议先学,但是如果是单独搞dsp的实现的话...
相关信息:
- Copyright & 2017 www.xue63.com All Rights Reservedexcel中加减乘除怎样对一列表格能同时计算出_百度知道
excel中加减乘除怎样对一列表格能同时计算出
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
假定求A列的k倍,结果存入B列 在B1中输入&=A:A*k&,回车,拖动在B列自动填充,就可以了 其它的公式也可以用这个方法没有规则,只能手工输入了=A1-sum(B1,c3,B4,N6,M7,V3,C4,E8)如是规则的如A1减去B1到B10和就可以用=A1-sum(B1:B10)其它用法一样=15*3-12=45-12=33=15/5-2+3=3-2+3=1+3=4注意加减乘除符号:+ - * /以及小括号,不管几级都是小括号=((15+2)*2-2)*3=(17*2-2)*3=32*3=96
数码网络营销专家
用选择性粘贴,比如你要A列都加上12,那么先在空白单元格中输入12,复制,然后选中A列,右键,选择性粘贴,“运算”那里选择“加”,OK。如果是要减、乘、除也是一样的道理,在“运算”那里选择“减”、“乘”、“除”就行了。
本回答被提问者和网友采纳
A列B列的和=SUMPRODUCT(A:A*B:B)
举个例子或者发个图片看看
其他1条回答
为您推荐:
其他类似问题
excel的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。写一个函数,计算0到n之间2的个数 (1-9的个数)
写一个函数,计算0到n之间2的个数。
最简单直观的方法就是对于0到n之间的数,一个个地去统计2在它们上出现的个数, 然后累加起来即可。求2在某个数上出现的次数需要O(logn)的时间,一共有n个数, 所以共需要O(nlogn)的时间。
代码如下:
1234567891011121314151617int Count2(int n){&&&&int count = 0;&&&&while(n & 0){&&&&&&&&if(n%10 == 2)&&&&&&&&&&&&++count;&&&&&&&&n /= 10;&&&&}&&&&return count;}&int Count2s1(int n){&&&&int count = 0;&&&&for(int i=0; i&=n; ++i)&&&&&&&&count += Count2(i);&&&&return count;&}&上述方法最大的问题就是效率,当n非常大时,就需要很长的运行时间。 想要提高效率,就要避开暴力法,从数字中找出规律。对于这道题, 《编程之美》已经给出了很漂亮的解法,这里再简述一下。假设一个5位数N=abcde,我们现在来考虑百位上出现2的次数,即,从0到abcde的数中, 有多少个数的百位上是2。分析完它,就可以用同样的方法去计算个位,十位,千位, 万位等各个位上出现2的次数。当百位c为0时,比如说1013中哪些数的百位会出现2?我们从小的数起, 200~299, , , … , , 也就是固定低3位为200~299,然后高位依次从0到11,共12个。再往下 已经大于12013,因此不再往下。所以,当百位为0时,百位出现2的次数只由更高位决定, 等于更高位数字(12)x当前位数(100)=1200个。当百位c为1时,比如说12113。分析同上,并且和上面的情况一模一样。 最大也只能到,所以百位出现2的次数也是1200个。上面两步综合起来,可以得到以下结论:
当某一位的数字小于2时,那么该位出现2的次数为:更高位数字x当前位数
当百位c为2时,比如说12213。那么,我们还是有200~299, , , … , 这1200个数,他们的百位为2。但同时,还有一部分, 共14个(低位数字+1)。所以,当百位数字为2时, 百位出现2的次数既受高位影响也受低位影响,结论如下:
12当某一位的数字等于2时,那么该位出现2的次数为:更高位数字x当前位数+低位数字+1&当百位c大于2时,比如说12313,那么固定低3位为200~299,高位依次可以从0到12, 这一次就把也包含了,同时也没低位什么事情。因此出现2的次数是: (更高位数字+1)x当前位数。结论如下:
当某一位的数字大于2时,那么该位出现2的次数为:(更高位数字+1)x当前位数
根据上面得出的3条结论,我们可以编写出代码如下:
12345678910111213141516171819202122232425262728int Count2s(int n){&&&&int count = 0;&&&&int factor = 1;&&&&int low = 0, cur = 0, high = 0;&&&&&while(n/factor != 0){&&&&&&&&low = n - (n/factor) * factor;//低位数字&&&&&&&&cur = (n/factor) % 10;//当前位数字&&&&&&&&high = n / (factor*10);//高位数字&&&&&&&&&switch(cur){&&&&&&&&case 0:&&&&&&&&case 1:&&&&&&&&&&&&count += high * factor;&&&&&&&&&&&&break;&&&&&&&&case 2:&&&&&&&&&&&&count += high * factor + low + 1;&&&&&&&&&&&&break;&&&&&&&&default:&&&&&&&&&&&&count += (high + 1) * factor;&&&&&&&&&&&&break;&&&&&&&&}&&&&&&&&&factor *= 10;&&&&}&&&&&return count;}&如果我们把问题一般化一下:写一个函数,计算0到n之间i出现的次数,i是1到9的数。 这里为了简化,i没有包含0,因为按以上的算法计算0出现的次数, 比如计算0到11间出现的0的次数,会把1,2,3,4…视为01,02,03,04… 从而得出错误的结果。所以0是需要单独考虑的,为了保持一致性,这里不做讨论。 将上面的三条结论应用到这就是:
当某一位的数字小于i时,那么该位出现i的次数为:更高位数字x当前位数
当某一位的数字等于i时,那么该位出现i的次数为:更高位数字x当前位数+低位数字+1
当某一位的数字大于i时,那么该位出现i的次数为:(更高位数字+1)x当前位数
代码如下:
Countis(int
&&&&if(i&1
-1;//i只能是1到9
&&&&while(n/factor
&&&&&&&&low
(n/factor)
factor;//低位数字
&&&&&&&&cur
(n/factor)
10;//当前位数字
&&&&&&&&high
(factor*10);//高位数字
&&&&&&&&if(cur
&&&&&&&&&&&&count
&&&&&&&&else
&&&&&&&&&&&&count
&&&&&&&&else
&&&&&&&&&&&&count
&&&&&&&&factor
&&&&return
转载网址:http://www.cricode.com/2520.html
写一个函数,计算0到n之间2的个数。
程序员面试金典——解题总结: 9.18高难度题 18.4编写一个方法,数出0到n(含)中数字2出现了几次
计算数字k在0到n中的出现的次数,k可能是0~9的一个值
有一个整数n,写一个函数f(n),返回0到n之间出现的&1&的个数。
没有更多推荐了,

我要回帖

更多关于 N(d1)的表格怎么查 的文章

 

随机推荐