1.lasԴ??
2.JavaScript之reduce()的用法
3.Linux中potree的环境配置及点云可视化
lasԴ??
/* determine the amount of the change
change = (paid - check) * ;
determine the number of dollars in the change
dollars = change / ;
…
(1). Using the previous statements as a starting point, write a C program
that calculates the number of dollar bills( cents), quarters coins(
cents), dimes coins ( cents), nickels coins (5 cents), and pennies coins (1
cents) in the change when $ is used to pay a bill of $6..
(2) Using the C program to calculate the change when a check of $.
is paid using a $ bill.
*/
#include "stdio.h"
void getChange(int paid, float bill)
{
if (paid < bill)
{
printf("Your money cant paid for the bill!\n");
return;
}
else
{
int remain;
int dollor = 0,quarter = 0,dime = 0,nickel = 0,penny = 0;
remain = (paid* - bill*)+0.5;
dollor = remain/;
printf("Change Dollors: %d\n",dollor);
remain -= dollor*;
quarter = remain/;
printf("Change Quarters: %d\n",quarter);
remain -= quarter*;
dime = remain/;
printf("Change Dimes: %d\n",dime);
remain -= dime*;
nickel = remain/5;
printf("Change Nickels: %d\n",nickel);
remain -=nickel*5;
penny = remain;
printf("Change Pennys: %d\n",penny);
printf("Change finished!\n");
}
}
void main()
{
int paid;
float bill;
printf("Please input your Paid($):");
scanf("%d",&paid);
printf("Please input your Bill($):");
scanf("%f",&bill);
printf("Your change is: \n");
getChange(paid, bill);
}
JavaScript之reduce()的用法
首先,参考了这位大佬的总结,敲了一遍,收获很大。记录下来。参考链接背景:之前是app引流裂变源码接触vue源码的时候,发现使用reduce的地方很多。当时也是在看别人分享,简单带过,发现很好用。简单研究后,很少用到。导致理解不深。今天碰到到使用场景,特意花时间研究了一番,可以说理解的很到位了。
语法arr.reduce(function(prev,cur,index,arr){ ...},init);其中,\arr表示原数组;\prev表示上一次调用回调时的返回值,或者初始值init;\cur表示当前正在处理的hashmap源码1.8数组元素;\index表示当前正在处理的数组元素的索引,若提供init值,则索引为0,否则索引为1;\init表示初始值。这个初始值在很多技巧上要用到,要重点留意
在实际使用当中,其实常用的参数只有两个:prev和cur。结合例子来分析一番。
实例以下举的例子除了用reduce来实现,还有很多其他的卷积投影源码方法。不过使用reduce有它独有的技巧性和方便。
1、求数组的和方式一:
letarr=[3,4,5,6,9,2,4,6];letsum=arr.reduce((pre,cur,index,arr)=>{ //console.log('index:',index);//console.log('arr:',arr);returnpre+cur;})console.log(sum);方式二:
letsum=arr.reduce((pre,cur,index,arr)=>{ //console.log('index:',index);//console.log('arr:',arr);returnpre+cur;},0)console.log(sum);注意:方式二,由于传入了初始值0,所以pre的初始值就是0,cur的值,就是数组的第一个值为3;如果不传初始值的话,就如方式一,这时,retrofit 2.0源码pre的值是3,cur的值是4;相加后为7,作为下一轮的pre的值,cur是5,依次类推下去。
2、求数组的最大值方式一:
letarr=[1,4,5,6,9,2,4,6];letmax=arr.reduce((pre,cur)=>{ returnMath.max(pre,cur)})console.log(max);方式二:
letmax2=arr.reduce((pre,cur)=>{ returnpre>cur?pre:cur;})console.log('max2:',max2);3、给数组去重letnewArr=arr.reduce((pre,cur)=>{ pre.indexOf(cur)===-1&&pre.push(cur)returnpre},[])console.log(newArr);进阶用法1.求字符串中字幕出现的次数conststr='sfhjasfjgfasjuwqrqadqeiqsajsdaiwqdaklldflas-cmxzmnha';constres=str.split('').reduce((pre,cur)=>{ pre[cur]?pre[cur]++:pre[cur]=1;returnpre},{ })console.log('汇总次数:',res);2.数组转数组letarr1=[2,3,4,5,6,7];letnewArr1=arr1.reduce((pre,cur)=>{ pre.push(cur*cur)returnpre;},[])console.log('数组转数组:',newArr1);3.数组转对象letstreams=[{ name:'博士',id:1},{ name:'硕士',id:2},{ name:'本科',id:3}];letobj1=streams.reduce((pre,cur)=>{ pre[cur.id]=cur;returnpre;},{ })console.log('数组转对象:',obj1);高级用法1.多维的叠加执行操作例子:各科成绩占比不一样,求结果
constresult=[{ subject:'math',vue 关键源码score:},{ subject:'chinese',score:},{ subject:'english',score:},];constdis={ math:0.5,chinese:0.2,english:0.4};letres2=result.reduce((pre,cur)=>{ returndis[cur.subject]*cur.score+pre},0)console.log('多维叠加:',res2);加大难度:商品对应不同国家汇率不同,求价格
letarr=[3,4,5,6,9,2,4,6];letsum=arr.reduce((pre,cur,index,arr)=>{ //console.log('index:',index);//console.log('arr:',arr);returnpre+cur;})console.log(sum);、扁平一个二维数组letarr=[3,4,5,6,9,2,4,6];letsum=arr.reduce((pre,cur,index,arr)=>{ //console.log('index:',index);//console.log('arr:',arr);returnpre+cur;})console.log(sum);1多维数组扁平化
3、对象数组去重letarr=[3,4,5,6,9,2,4,6];letsum=arr.reduce((pre,cur,index,arr)=>{ //console.log('index:',index);//console.log('arr:',arr);returnpre+cur;})console.log(sum);、compose函数reduxcompose源码实现
letarr=[3,4,5,6,9,2,4,6];letsum=arr.reduce((pre,cur,index,arr)=>{ //console.log('index:',index);//console.log('arr:',arr);returnpre+cur;})console.log(sum);3Linux中potree的环境配置及点云可视化
为了在Linux环境中配置Potree并实现点云可视化,请确保你的电脑已安装Node.js和Gulp,若已安装,直接跳至第三步。
一、安装Node.js
二、安装Gulp
三、安装Potree
在终端依次执行以下命令,Potree的安装目录下应出现一个名为“build”的文件夹。
四、PotreeConverter安装
要实现Potree可视化,需使用特定格式的数据。因此,需将txt、las等数据转换为Potree所定义的格式。首先安装LAStools,这将配置好PotreeConverter所需的依赖。
四、LAStools安装
四、PotreeConverter
若在转换过程中遇到TBB.camke类错误,应采用源码方式安装tbb库,避免使用apt-get install libtbb-dev,以确保在编译链接PotreeConverter时不会出错。
五、数据转换
介绍几种数据转换方法。
六、potree点云可视化
完成以上步骤后,进入potree目录,运行npm start命令。接着,在浏览器中打开localhost:/examples链接,即可浏览examples中的文件并点击打开进行可视化。