Rust语言解面试题1

/* 比较一下

:http://blog.csdn.net/iilovetopview/article/details/43745059

发现还是D语言的快。

*/

use std::time::duration::Duration;

use std::num::Int;

use std::collections::HashMap;

//use std::collections::hash::map;

pub struct Va {

pub  Ac: Vec<usize>,

pub  aa: HashMap<usize, usize>,

}

fn main() {

let r = Duration::span(fnx);

println!(" time :{} milliseconds",r.num_milliseconds());

}

fn fnx()

{

let ( mut pos,mut n ,mut count)=(0,1,0);

while(n >0)

{

let  mut vc =  Va{Ac:vec![],aa: HashMap::new(),};

pos = Fx(n,vc);

if(n == pos)

{

count +=1;

println!("n is: {0},  Fn(n) is:{1} ",n,pos);

if(count >1) {break;}

}

n+=1;

if(n >200000) {break;}//

}

}

fn Fx (n: usize,mut va:Va) -> usize

{

let ( mut  i,mut y,mut l) = (0,0,0);

let mut x = n;

while(x>=1)

{

y=x%10;

va.aa.insert(i,y);

va.Ac.push(y);

x /= 10;

i+=1;

}

let mut m = va.Ac.len() -1;

let (mut result ,mut h) =(0,0);

h =va.aa[m];

if( n%gPow(m) == 0) {return fnA(h,m);}

else  {return  fnA(h,m)+fnB(m-1,va);}

}

fn fnA(h:usize,m:usize) ->usize

{

if(h == 0) {return 0;}

else if(h==1) {if(m == 0) {return 1;} else {return  m*gPow(m-1)+1;}}

else {if(m == 0) {return 1;}  else {return  gPow(m)+h*m*gPow(m-1);}}

}

fn fnB(m:usize,mut va:Va) ->usize

{

..... //代码略

return  sum + fnB(m-1,va);

}

fn gPow(m: usize) ->usize

{

return  10.pow(m);

}

时间: 2024-10-10 14:00:30

Rust语言解面试题1的相关文章

Atitit.rust语言特性&#160;attilax&#160;总结

Atitit.rust语言特性 attilax 总结 1. 创建这个新语言的目的是为了解决一个顽疾:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升.1 2. 不会出现Null指针等等1 2.1.1. Rust 1.1 稳定版 更新内容1 2.1.2. Rust 1.2 测试版 更新内容2 3. RAII2 3.1. 无数据竞争(Data Race)…无需竞争的并发,Rust能够确保在并发编程中的数据安全3 4. 是基于继承的组合,Rust能基于继承实现组合,

半个月使用rust语言的体验

从第一次下载rust语言的编译器到今天刚好第14天. 简单说一下对这个语言的感觉吧. 一.性能 把以前用java写的一个中文地址切分的算法,用rust重新实现了一下(https://github.com/naturemickey/addressCut_use_rust).运行的速度上,rust的release版本要比java快上一倍左右. java版本的代码量是800多行,而rust版本的代码量是600多行. 这个体验还是很不错的,毕竟才刚刚开始学习rust语言,很多代码自己都觉得写得丑陋无比(

我持续推动Rust语言支持Windows XP系统

前言 Rust好像长期以来不支持Windows XP系统.有不少用户发帖提议官方支持XP,基本上都被Rust官方开发人员明白的拒绝了.他们的对话大致上是以这种形式開始和结束的(当中乙方代表官方及其拥趸): 甲方:Rust应该支持XP呀 乙方:微软官方已经放弃维护XP.我们为什么要支持一个不安全的系统? 甲方:从技术上说Rust支持XP应该也不难 乙方:不是必需为一个老旧的系统付出开发和维护成本 甲方:XP在全世界还有非常多装机量.甚至远超Mac OS系统 乙方:XP是不安全的系统 甲方:我们的客

【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)

经典10道c/c++语言经典笔试题(含全部所有参考答案) 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n)[10]; struct MyStruct { char dda; double dda1; int type ; }; MyStruct k; printf("%d %d %d %d %d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(

Rust语言——无虚拟机、无垃圾收集器、无运行时、无空指针/野指针/内存越界/缓冲区溢出/段错误、无数据竞争

2006年,编程语言工程师Graydon Hoare利用业余时间启动了Rust语言项目.该项目充分借鉴了C/C++/Java/Python等语言的经验,试图在保持良好性能的同时,克服以往编程语言所存在的问题.其最大的特点在于保持较高的运行效率.深入的底层控制和广泛应用范围的同时,解决了传统C语言和C++语言中的内存安全问题.2009年,Mozilla接手Rust项目,创建了以Graydon为首的专业全职开发团队,并且开放了该项目的源代码.2012年1月,第一个面向公众的预览版本--v0.1 发布

QCon2016演讲《Rust语言的核心竞争力》总结和补充

应 QCon北京2016|全球软件开发大会 主编臧秀涛邀请,我(Liigo)于2016年4月23日在大会上做主题演讲<Rust编程语言的核心优势和核心竞争力>(PDF演讲稿).由于是初次登台,现场表现不佳,个人不是很满意.故做本文对此次演讲进行总结和补充. 核心三要素:系统编程,零运行时,内存安全 我把Rust编程语言的核心优势和核心竞争力概括为三个要素:系统编程,零运行时,内存安全.在强调底层控制的系统编程领域,同时保持极小的运行时开销和极高的运行时效率,又保证了系统内存安全的现代编程语言,

C语言必会面试题(3、耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)

3.耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3....凡是报到"3"就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒.请找出它原来的序号. int a[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13}; int number = 13;//记录当前人数 int count = 0;//1,2,3报数 int i = 0; while (number > 1) { if

Rust语言

Rust语言 https://doc.rust-lang.org/stable/book/ http://www.phperz.com/article/15/0717/141560.html Rust是一款全新的系统编程语言,专注于安全性和性能,致力于打造更高效.更可靠的系统.同一时候,Rust也是Mozilla新一代浏览器引擎Servo的编写语言,希望能在确保安全性的同一时候提升在移动设备上的性能和表现. on command installation: $ sudo curl -sf -L

Rust语言之HelloWorld Web版

Rust语言之HelloWorld Web版 下面这篇文章值得仔细研读: http://arthurtw.github.io/2014/12/21/rust-anti-sloppy-programming-language.html Iron是一个Web框架,是建立在hyper之上的,hyper是完全用Rust写的http库.因此,Iron相当于Tomcat/Jetty之于Java, Cowboy之于Erlang.下面就使用Iron写一个WebServer,很简单,当用户在浏览器地址栏访问htt