精华内容
下载资源
问答
  • 这份代码的逻辑很清晰,就是将这个慢慢的移,每一都进行判断最终得出结果,乍一看没什么错误。并且进行测试会发现对于正整数它运行的非常好,没有什么错误,但是我们尝试一下负整数就会发现他有巨大的问题。 ...

    看到这个问题我们的第一反应就是根据二进制的位直接统计,这也是我已开始想到的,于是有了如下代码

    这份代码的逻辑很清晰,就是将这个数慢慢的移,每一位都进行判断最终得出结果,乍一看没什么错误。并且进行测试会发现对于正整数它运行的非常好,没有什么错误,但是我们尝试一下负整数就会发现他有巨大的问题。

    这里首先要提一下,计算机对负数的存储是按照其正数的补码表示的,所以进行这种简单的移位判断就不可避免的会出现错误。

    这里我们就要提到第二中解法,这种方法不金额以解决负数的问题,而且可以提高算法的效率。先看代码:

    image

    这种解法的精髓就在image这个操作上面,我们首先要考虑x和x-1的二进制的差别在哪,我们列出几个

    image

    从这些例子我们不难发现,这两个数存在着这么一个关系:x的最后一个一变成了零,其后(可能没有)的零变成了一。于是我们可以发现只要将两个数进行与操作,那么最后一个一以及它后面的就都置零了,通过判断可以进行多少次这样的操作就可以知道有多少个一。

     

    判断有多少零只需要将判断改一下就好。

     

    转载于:https://www.cnblogs.com/MrLJC/p/3527576.html

    展开全文
  • 这种趣事当然不能错过,所以杨老师把这个新闻里的视频认认真真看了遍,发现这陈同学的创意确实很有意思。如果各位还没看过,不妨先抽出分钟感受一下:大学毕业生用EXCEL制作全家福-每个人都是C​...

    3a203462178b4639b7b5f933109b1c7c.png

    一、缘起

    跟很多人一样,杨老师这半年也养成了一个习惯 —— 每到月底都要打开微博集中吃瓜。所以前几天也不例外,不过没想到的是,这一次居然吃到了自己田里 —— 热搜榜上出现了Excel!

    6f8b606abfd20f40e2c11fc16ee0e139.png

    这种趣事当然不能错过,所以杨老师把这个新闻里的视频认认真真看了几遍,发现这位陈同学的创意确实很有意思。如果各位还没看过,不妨先抽出几分钟感受一下:

    大学毕业生用EXCEL制作全家福-每个人都是C位www.bilibili.com
    e37c766b8c45885b8bf625e208eca806.png

    古人说“见贤思齐”,杨老师看完视频后也一时技痒,想复现一下陈同学这个创意,顺便看看能不能把它也作为一个案例,讲解给有兴趣的VBA学习者。所以在录课间歇抽出了几个小时,做了一个简易模仿版,复原了核心功能,效果如下:

    c0f19fe85197d1226fc6ae8ddecdf0fe.gif

    那么接下来,咱们就结合这个简易版的代码,分析一下怎样实现这个陈同学这个排图软件。不过事先声明:毕竟这是一个功能比较完整的小软件,所以肯定要用到VBA的常用语法,以及一些常用的编程技巧。如果把其中每一个环节都讲明白,无异于讲解一门完整的VBA课程,所以本文只能讲解其中的关键技术环节,也就是其他常见VBA程序中比较少见的部分。

    补充:写完后发现,撰写本文讲这些知识点的时间,是之前编写这个程序的两倍。

    二、原版软件的技术路线和布局思路

    要想复原这个软件,当然先要整理出原版程序的功能和技术路线。不过新闻视频中只给出了一些片段,所以需要我们先进行一些对比分析。

    首先通过原视频这个画面中的 xlsm 文件名,可以确定陈同学使用的是VBA。这也符合我们的预期,毕竟使用公式实现这么复杂的效果不太实际。

    fab7bbc0cb1c5e11200549849db966cb.png

    接下来杨老师很感兴趣的一个地方,就是陈同学“怎样把照片调成大小不同的图片、拼在一起又正好组成一个矩形?”

    d64d2f402472684aa7db4ca78afc70e5.png

    其实只要把这个视频中的画面多做几次比对,就会发现个中道理:

    35cd50465783c3d0ae9a15bdf5ff5247.png

    从上面的两个截图中可以发现:其实每个位置上的方块大小都是固定的,只不过每次插入的图片不同。那么“矩形”+“大小不同的方块”+ “Excel”会让你想起什么呢?当然是单位里各位前辈最喜欢的——“合并单元格”!

    9eff92a2acbc9c1f873d40ac01e32709.png

    于是复原版的第一步工作,就是想上面这样,在工作表中画一个合并单元格布局。当然,如果愿意投入更多的精力,我们也完全可以把这个布局设计做成VBA程序,从而根据图片的数量自动设计布局。这本身也是一个很有趣的小程序,不过今天我们先不考虑它,因为另一个与排版有关的问题更现实:假如照片与单元格的形状不一致怎么办?

    比如,假设我们想把一个矩形图片缩放后,放到一个正方形的格子中,那么除非把原图片拉伸变形,否则这个格子的上下或左右边缘就会露出空白缝隙。

    3bc262c11bf963a4f2c4ed5723106749.png

    那么原作者是怎样处理这种情况的呢?观察新闻视频中的截图可以发现:(1)所有格子都没有空白缝隙(2)所有照片都没有变形 。因此可以推断:作者一定是将每个图片都在保持比例的情况下进行拉伸(或缩小),使它的宽和高中有一个与格子相同、另一个则等于或超过格子的宽高。

    ba6570662468866c62a28d1f385e0109.png

    既然图片可能会超出格子的范围,自然就要进行裁剪,把超出的部分裁掉。可是这又遇到一个问题:假如某位同学的照片被裁掉了头部,将来十年聚会时岂不是要被罚酒?

    9d1c76a3314cb11a0e4122125473d72c.png

    那么原作者是怎样处理裁剪的呢?对比几张图片,可以大胆猜测,他使用了一个简单却好用的规则:图片顶部对齐格子顶部,图片中线对齐格子中线,然后剪掉左右两边多出来的部分。

    1b2565253029b8712f429370255459d7.png

    搞清楚了这些思路,就可以直接进入下一个环节:怎样把图片插入到上面某一个格子中。

    三、图片插入与对齐

    在2010版以后的Excel VBA中,插入图片的方式基本都是使用 Shape 对象,也就是“形状”。在《全民一起VBA 实战篇》专题五第八回“A1做原点千秋万代,Shape管形状一统江湖”中,我们讲解过:每个工作表都有一个Shapes集合,里面存放了这个工作表中的所有形状(Shape)对象,比如箭头、方框、ActiveX控件,以及插图。

    890b7b51dea04a2724d56735c5c80b47.png
    《全民一起VBA 实战篇》专题五第八回截图

    而Shapes集合有一个AddPicture方法,顾名思义,就是将指定的图片文件插入到当前工作表中,并作为一个新的Shape形状对象。具体用法就是:

    p = Shapes.AddPicture( 图片文件路径,是否作为链接文件,是否随工作簿保存,左边坐标,顶部坐标,宽度,高度)

    所以如果需要把硬盘上一个图片文件插入到指定单元格(比如B2),并且要求该图片左上角与该单元格对齐,就可以使用下面的方式:

    9322d0a4f4f6dd8d66eef94b6157c9e0.png

    上面的代码展示了插入图片的基本操作,具体含义看注释即可,篇幅所限,涉及到的函数细节请大家自行搜索。另外这里为了照顾初学者,没有使用 with 块语句,实际应用时建议大家改用 with 以便简化语法、提高效率。

    上面的代码最后把图片的宽度设为与单元格一致。这样对于“瘦高”型的图片很合适,因为只要它的宽度与单元格相同,那么它的高度就肯定会超出单元格,我们后面直接裁剪就好。

    38af956702ee35e771225b13efd37e56.png

    但是对于“扁宽”的图片,如果只是把宽度设为与单元格一致,它的高度就会小于单元格高度,结果露出一片空白。

    9455e2931069214961294e08bebb3644.png

    所以我们还要修正上面的对齐方式。比如:先不管图片是什么形状,先把它的高度设为与单元格一致;设置好高度后,再检查它的宽度,看是否小于单元格宽度:

    1. 如果是,那么进一步拉伸,将其宽度也设为与单元格相同、从而高度超出单元格,这样后面将超出的高度部分裁掉即可;
    2. 如果不是,即图片宽度已经大于单元格宽度,则执行中间对齐,再裁掉两边多出来的宽度。

    所以上面的代码进一步修改为:

    50047bc6efcc7d1636789ea80b32589f.png

    于是下一个问题就是:怎样裁剪图片?

    四、图片裁剪

    现在已经将图片对齐并缩放,使其覆盖整个单元格。但是怎样按照第一节中分析的规则,对该图片进行裁剪呢?这里就需要用到 Shape 对象另外几个很少用的属性:Shape.PictureFormat.CropLeft,以及 CropRight,CropUp,CropBottom 。

    在 PhotoShop 等图形处理软件中,Crop 就是“裁剪”的意思。所以很明显,上面这四个属性就是告诉 Office :这个Shape对象的左边、右边、上边、下边 分别需要裁掉多少像素。比如对于一个图形对象 sh ,下面的代码就是把它的左边和下边分别裁掉 20 与 50 个像素:

    sh.PictureFormat.CropLeft = 20

    sh.PictureFormat.CropBottom = 50

    而我们在《全民一起VBA 提高篇》里学过:代表单元格的Range对象都有 width 和 height 属性,代表这个单元格的宽度和高度。

    所以各位可能会想:只要先通过 Range("B2").Width 得到单元格宽度,再通过 Shape.width 得到图片的宽度,然后就可以通过下面的公式,计算出怎样“以图片中线为中心,左右各减去相同的像素,使其与单元格宽度正好相同”:

    sh.PictureFormat.CropLeft =(图片宽度 — 单元格宽度)/ 2

    sh.PictureFormat.CropRight = (图片宽度 — 单元格宽度)/ 2

    思路很正确,但是却会掉到一个“坑”里面!假如图片 sh 没有经过任何缩放,那么 sh.PictureFormat.CropLeft = 10 就是左边删掉10个像素,没有任何问题。但是假如 sh 已经缩放到原来的一半大小,也就是缩放比为 0.5 ,那么再执行 sh.PictureFormat.CropLeft = 10 ,实际删除的只有 10 X 0.5 = 5 个像素!

    而我们前面的代码中,将图片的高度或宽度设为与单元格一致,就相当于对图片进行了缩放,所以再设定 Crop 属性时,最终裁剪出来的图片并不符合预期。

    因此为了修正这个问题,我们必须计算出图片在对齐单元格后的缩放比例,然后用下面的公式进行裁剪:
    sh.PictureFormat.CropLeft =(图片宽度 — 单元格宽度)/ ( 2 * 缩放比例 )

    sh.PictureFormat.CropRight = (图片宽度 — 单元格宽度)/ ( 2 * 缩放比例 )

    至于缩放比例的计算方法,只需要用单元格高度或宽度,除以图片缩放前的高度或宽度即可。因此综合上面的思路,可以写出一个函数,将任意图片缩放裁剪对齐到任意单元格:

    9a4fb3c5b8520769365c7bfda2342e44.png

    五、其他问题

    解决了一个图片的对齐,剩下的就是做一个循环,把所有图片都对齐到不同的单元格中。整体流程和一些需要特别注意的细节如下:

    1. 读入文件夹中的所有图片,可以使用VBA自带的Dir函数,详见 《全民一起VBA 提高篇》 中的讲解:

    03d897c0cd3fb727dd1222abb5632c66.png

    2. 按上面的方法,使用 DIR 和 While 循环读入所有图片文件,每读入一个,就将其作为形状对象插入到工作表中,并建议将每个Shape对象的Name属性都定义为该图片的文件名,以便查找。同时建议创建一个全局数组,把这些文件的名字同时存入数组,以便后面进行随机打乱排序。

    3. 每次运行随机排位程序时,先对 2 中创建的数组进行随机乱序,比如循环扫描数组中的每个文件名,并将其与数组中另一个随机数下标的文件名互换,最后得到一个“洗过牌”的文件名顺序。

    4. 假设整个单元格区域(包含所有准备放照片的格子)是 B2:G8,那么就使用 For Each rng in Range("B2:G8").Cells 扫描其中每个单元格,每找到一个,就从数组中取得下一个图片,然后调用前面的“对齐图片到单元格”函数,将它插入进去。

    5. 但是在上面的扫描过程中必须注意:即使多个单元格已经合并在一起,在For循环中仍然会被当做6个单元格分别扫描一遍,而实际上我们只应该把图片插入到一个合并区域的左上角单元格中。

    所以这里需要用到一些 《全民一起VBA 提高篇》 第16回“多区域合纵连横身形变幻,单元格定位精准边界分明”中讲解的合并单元格技巧:首先通过 if rng.Address = rng.MergeArea.Cells(1, 1).Address then ,判断出该单元格 rng 是否为合并单元格的左上角;如果是,则将 rng.MergeArea 作为目标单元格参数,传递给前面的“对齐图片到单元格”函数,用于插入图片。

    六、总结

    如果家能够看到这里,说明你的VBA基础非常不错。本文重点分析了“将图片插入、裁剪、对齐到指定单元格”的相关技术,而对其他部分比如“读入所有文件”、“随机排序”、“找到所有合并单元格”等相对常见的功能,只能扼要提醒。不过只要大家愿意花点时间去动手实践,按照这里点明的思路,相信是可以完成这个小程序的。

    最后再次为陈同学的创意和友情点赞!

    展开全文
  • 将数字正序输出

    千次阅读 2018-05-30 17:10:52
    我们会发现要想找到最高位首先得知道一个数字有几位判断位数的方法这里就不一一列举了请参考上一篇文章。之后我们来找找规律1234要输出1,我们得让它除以1000,那么1000和位数的关系是什么呢?假如设这个的位数...

    判断数字的位数和将数字逆输出都已经讲过了,今天讲讲怎样将数字正序输出:

    例如1234,我们需要分别输出1 2 3 4,现在就有一个难题了,我们怎样找到一个数字的最高位呢?我们会发现要想找到最高位首先得知道一个数字有几位,判断位数的方法这里就不一一列举了请参考上一篇文章。之后我们来找找规律1234要输出1,我们得让它除以1000,那么1000和位数的关系是什么呢?假如设这个数的位数为n,那么就要除以10的n-1次方。要得到2,首先得丢弃1,然后再除以100.....以此类推,我们会发现1000,100,10,1之间是10倍的关系。话不多说,代码奉上:



    展开全文
  • 自幂是指一个 n 位数,它的每个上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂) 自幂包括:独身、水仙花、四叶玫瑰、五角星、六合、...
    	自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)
    

    自幂数包括:独身数、水仙花数、四叶玫瑰数、五角星数、六合数、北斗七星数、八仙数、九九重阳数、十全十美数 。
    下面分析怎样找出自幂数的算法:
    1:首先要能判断一个自幂数
    (这里面可以分为几个函数
    1.找出数字的位数
    2.给一个算次方的函数)
    2:给定范围,查找自幂数
    说到这里有的小朋友可能特别疑惑了,为神魔要自造一个算次方的函数呢?
    C语言的math.h库里面不是有pow()函数直接调用吗?
    请注意本文章的标题,我们要优化,优化,优化,我们要给一个更快的方法,嘿哈。
    先给出我第一次写出来的代码

    #include <stdio.h>
    #include <time.h>
    #include "./include/mec.h"
    boolean isSelfPower(int num);
    int intLen(int num);
    int intPow(int a, int p);
    boolean isSelfPower(int num) {
    	int cnt;
    	int sum;
    	int n;
    
    	cnt = intLen(num);
    
    	sum = 0;
    	for (n = num; n && sum <= num; n /= 10) {
    		sum += intPow(n % 10 ,cnt);
    	}
    
    	return sum == num;
    }
    
    int main() {
    	int num;
    	int maxNum;
    	long startTime;
    	long endTime;
    	long deltaTime;
    
    	printf("输入最大范围:");
    	scanf("%d", &maxNum);
    
    	startTime = clock();
    	for (num = 0; num < maxNum; num++) {
    		if (isSelfPower(num)) {
    			printf("%d是自幂数\n", num);
    		}
    	}
    	endTime = clock();
    	deltaTime = endTime - startTime;
    	printf("耗时:%ld.%03lds\n", deltaTime / CLOCKS_PER_SEC, deltaTime % CLOCKS_PER_SEC);
    
    	return 0;
    }
    
    
    int intLen(int num) {
    	int cnt = 0;
    
    	if (num <= 0) {
    		return 1;
    	}
    
    	while (num) {
    		cnt++;
    		num /= 10;
    	}
    
    	return cnt;
    }
    
    int intPow(int a, int p) {
    	int sum = 1;
    	int i;
    
    	for (i = 0; i < p; i++) {
    		sum *= a;
    	}
    
    	return sum;
    }
    
     
    
    
    


    程序运行到这里,已经卡住了,头疼,头疼
    程序运行到这里,已经卡住了,头疼,头疼,这种算法可能
    我们分析一下,计算长度能不能不用循环呢,我们这样想,可以定一个a[10]数组,a[0]为0,a[1]为10,a[2]为100,若最大范围数组小于a[i-1]大于a[i]则位数为i,这样不用循环,节省了时间,就很简单的判断了数字的位数!
    我们再来看一下我们的,程序优化后的速度;
    看,我们的程序又快了一点哦
    可是他还不够快,我还想更快!!!!!
    我们直接给出一个二维数组,将数字的1到10次方的数值存到一个数组里面。
    这样直接在数组里面找,不用再来循环叠加,再乘计算!

    这样我们来看看最终的运行耗时!
    是不是有了很可观的效果了哈哈哈
    我们在最后来给出最后完全的代码!

    #include <stdio.h>
    #include <time.h>
    
    #include "./include/mec.h"
    
    const int powValue[][10] = {
    	0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    	0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
    	0, 1, 2*2, 3*3, 4*4, 5*5, 6*6, 7*7, 8*8, 9*9,
    	0, 1, 2*2*2, 3*3*3, 4*4*4, 5*5*5, 6*6*6, 7*7*7, 8*8*8, 9*9*9,
    	0, 1, 2*2*2*2, 3*3*3*3, 4*4*4*4, 5*5*5*5, 6*6*6*6, 7*7*7*7, 8*8*8*8, 9*9*9*9,
    	0, 1, 2*2*2*2*2, 3*3*3*3*3, 4*4*4*4*4, 5*5*5*5*5, 6*6*6*6*6, 7*7*7*7*7, 8*8*8*8*8, 9*9*9*9*9,
    	0, 1, 2*2*2*2*2*2, 3*3*3*3*3*3, 4*4*4*4*4*4, 5*5*5*5*5*5, 6*6*6*6*6*6, 7*7*7*7*7*7, 8*8*8*8*8*8, 9*9*9*9*9*9,
    	0, 1, 2*2*2*2*2*2*2, 3*3*3*3*3*3*3, 4*4*4*4*4*4*4, 5*5*5*5*5*5*5, 6*6*6*6*6*6*6, 7*7*7*7*7*7*7, 8*8*8*8*8*8*8, 9*9*9*9*9*9*9,
    	0, 1, 2*2*2*2*2*2*2*2, 3*3*3*3*3*3*3*3, 4*4*4*4*4*4*4*4, 5*5*5*5*5*5*5*5, 6*6*6*6*6*6*6*6, 7*7*7*7*7*7*7*7, 8*8*8*8*8*8*8*8, 9*9*9*9*9*9*9*9,
    	0, 1, 2*2*2*2*2*2*2*2*2, 3*3*3*3*3*3*3*3*3, 4*4*4*4*4*4*4*4*4, 5*5*5*5*5*5*5*5*5, 6*6*6*6*6*6*6*6*6, 7*7*7*7*7*7*7*7*7, 8*8*8*8*8*8*8*8*8, 9*9*9*9*9*9*9*9*9,
    };
    
    
    boolean isSelfPower(int num);
    int intLen(int num);
    int intPow(int a, int p);
    
    int intPow(int a, int p) {
    	return powValue[p][a];
    }
    
    
    int intLen(int num) {
    	if (num < 0) {
    		return 0;
    	}
    	if (num >= 100000000 && num < 1000000000) {
    		return 9;
    	}
    	if (num >= 10000000 && num < 100000000) {
    		return 8;
    	}
    	if (num >= 1000000 && num < 10000000) {
    		return 7;
    	}
    	if (num >= 100000 && num < 1000000) {
    		return 6;
    	}
    	if (num >= 10000 && num < 100000) {
    		return 5;
    	}
    	if (num >= 1000 && num < 10000) {
    		return 4;
    	}
    	if (num >= 100 && num < 1000) {
    		return 3;
    	}
    	if (num >= 10 && num < 100) {
    		return 2;
    	}
    	return 1;
    }
    
    
    boolean isSelfPower(int num) {
    	int cnt;
    	int sum;
    	int n;
    
    	cnt = intLen(num);
    
    	sum = 0;
    	for (n = num; n && sum <= num; n /= 10) {
    		sum += intPow(n % 10 ,cnt);
    	}
    
    	return sum == num;
    }
    
    int main() {
    	int num;
    	int maxNum;
    	long startTime;
    	long endTime;
    	long deltaTime;
    
    	printf("输入最大范围:");
    	scanf("%d", &maxNum);
    
    	startTime = clock();
    	for (num = 0; num < maxNum; num++) {
    		if (isSelfPower(num)) {
    			printf("%d是自幂数\n", num);
    		}
    	}
    	endTime = clock();
    	deltaTime = endTime - startTime;
    	printf("耗时:%ld.%03lds\n", deltaTime / CLOCKS_PER_SEC, deltaTime % CLOCKS_PER_SEC);
    
    	return 0;
    }
    
    
    /*int intLen(int num) {
    	int cnt = 0;
    
    	if (num <= 0) {
    		return 1;
    	}
    
    	while (num) {
    		cnt++;
    		num /= 10;
    	}
    
    	return cnt;
    }
    */
    /*
    int intPow(int a, int p) {
    	int sum = 1;
    	int i;
    
    	for (i = 0; i < p; i++) {
    		sum *= a;
    	}
    
    	return sum;
    }
    */
    
    
    
    

    嘿嘿,这样就结束啦,如果你们能给出一个更加快速,时间复杂度更低的算法呢,欢迎留言,讨论,互相关注
    后面还会提一些比较有意思的算法哦!!!

    展开全文
  • P1012拼

    2019-07-29 22:08:00
    输入组数字,怎样组合起来才可以使最后结果最大。一开始这道题类似于那道删问题,每次删除递增序列的最后一,达到最小。而这个题我也是想到了贪心做法,于是想逐位判断,让在前面的尾数越大越好,但想了想,不...
  • 个问题我来答

    2019-07-15 12:05:09
    怎样判断一个是不是奇数?答 a. 用该x与x-1做&操作,结果为零则x为2的乘方,另外2的乘方的末尾规律为2、4、8、6。 b. 奇数比较好判断,只要最后一是奇数那这个就是奇数 怎样找出链表中间的元素?答 ...
  • 二进制表示的最低位1在第几位?例如:给定N = 3,N!= 6,那么N!的二进制表示(1 010)的最低位1在第二位。 为了得到更好的解法,首先要对题目进行一下转化。 首先来看一下一个二进制除以2的计算过程和结果是...
  • C语言——递归入门

    2019-03-30 23:10:43
    递归 递归是什么? 递归是什么,递归就是一种解决问题的方法...(1)先讨论如果不递归该怎样处理,一般步骤是这样的,先判断这个数是几位数,然后在记录下这个数的每一位,最后输出。我们想想,首先判断这个数的位...
  • 如何提取一串数字中的几位数字(字符) 如何把一个单元格中的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本中的前几个字符去除 对一列中的文字统一去掉...
  • C语言编程要点

    2017-09-18 00:10:37
    5.21. 怎样判断一个程序是用C编译程序还是用C++编译程序编译的? 89 5.22. 预处理指令#pragma有什么作用? 89 5.23. #line有什么作用? 90 5.24. 标准预定义宏__FILE__有什么作用? 90 5.25. 怎样在程序中打印源文件名? ...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    如何提取一串数字中的几位数字(字符) 如何把一个单元格中的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本中的前几个字符去除 对一列中的文字统一去掉...
  • 淘宝笔试题

    2011-03-11 22:45:09
    给定一个整数,可以有三种...如果未是1,就从后面开始判断个连续的1,如果1的连续个超过1,那么就加1,否则减1,这样做的目的是尽可能地多出现些0。 程序代码如下: public class DivNumber { public vo...
  • 练习P20入门版答案

    2018-04-20 10:51:04
    一个三位数,各位数字互不相同,十位数字比个位、百位数字之和还要大,且十位、百位数字之和不是质数。编程找出所有符合条件的三位数。 注:1. 不能手算后直接打印结果。 2. “质数”即“素数”,是指除1和自身...
  • 6.23 sizeof返回的大小是以字节计算的,怎样才能判断数组中有多少个元素呢? 第7章 内存分配 基本的内存分配问题 7.1 为什么这段代码不行?char*answer;printf("Typesomething:\n");gets(answer);printf(...
  • 判断函数 isValidCodePoint(int codePoint) isBmpCodePoint(int codePoint) isSupplementaryCodePoint(int codePoint) isHighSurrogate(char ch) isLowSurrogate(char ch) isSurrogate(char ch) isSurrogatePair...
  • 1.30 如何判断哪些标识符可以使用,哪些被保留了? 15 初始化 18 1.31 对于没有显式初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为“零”,它可否作为空指针或浮点零? 18  1.32 下面的...
  • 算法是一切程序设计的基础和灵魂,更是一程序员编程水平高低的集中体现。 涵盖广泛:精炼的理论讲述嵌入经典算法示例,学习查询兼而有之。 阐述到位:算法思想、算法实现和经典面试题合理搭配,相辅相成。 实例...
  • 首先,你要知道游戏中储存数据的种格式,这种格式是:字节(BYTE)、字(WORD)和双字(DOUBLE WORD),或者说是8、16和32储存方式。字节也就是8方式能储存0~255的数字;字或说是16储存方式能储存0~65535的...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.30 如何判断哪些标识符可以使用,哪些被保留了? 15 初始化 18 1.31 对于没有显式初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为“零”,它可否作为空指针或浮点零? 18  1.32 下面的...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0189 根据指定日期返回星期 123 0190 将日期转换为字符串 124 0191 判断日期是否改变 124 0192 判断字符串是否为日期或时间 125 0193 获得指定月的最后一天 127 0194 在指定的日期上加上3月 127 0195...
  • o 2.2 64 机上的 64 类型是什么样的? o 2.3 怎样定义和声明全局变量和函数最好? o 2.4 extern 在函数声明中是什么意思? o 2.5 关键字 auto 到底有什么用途? o 2.6 我似乎不能成功定义一个链表。我试过 ...
  • 3.5.4 在一个文件中有10G个整数,乱序排列,要求找出中位数。内存限制为2G。 3.5.5 时分秒针在一天之类重合多少次?(24小时) 3.5.6 将多个集合合并成没有交集的集合。 3.5.7 平面内有11个点,由它们连成48条...
  • java面试题

    2018-01-01 15:35:15
    84.9. 题目1:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三,"3"与"5"不能相连. 117 84.10. 写一个方法,实现字符串的反转,如:输入...
  • 2.1.5 数据结构的种存储方式 18 2.1.6 数据类型 19 2.1.7 常用的数据结构 20 2.1.8 选择合适的数据结构解决实际问题 21 2.2 线性表 21 2.2.1 什么是线性表 21 2.2.2 线性表的基本运算 22 2.3 顺序表结构 ...
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    74 <br>0107 如何获得字符串中数字或字母的长度 74 <br>0108 如何获得字符串中某个数字的位置 75 <br>0109 获得字符串中汉字的个数 76 <br>0110 获得字符串中指定后几位字符 76 <br>0111 ...
  • 实例146 判断回文 实例147 统计学生成绩分布 第4章 字符串和函数 4.1 字符串截取与转换 实例148 获取字符串中的汉字 实例149 英文字符串首字母大写 实例150 指定符号分割字符串 实例151 在文本中删除指定...
  • 实例146 判断回文 实例147 统计学生成绩分布 第4章 字符串和函数 4.1 字符串截取与转换 实例148 获取字符串中的汉字 实例149 英文字符串首字母大写 实例150 指定符号分割字符串 实例151 在文本中删除指定...

空空如也

空空如也

1 2 3
收藏数 60
精华内容 24
关键字:

怎样判断几位数