Rust语言解面试题1
来源:互联网 发布:怎样使用农村淘宝 编辑:程序博客网 时间:2024/06/03 09:08
/* 比较一下
: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;}//
}
}
{
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);
}
---Debug
cargo build --release
------------------------
上次采用dmd编译器,此次采用D 语言编译器:ldc2
0 0
- Rust语言解面试题1
- 用D语言解面试题1
- Go 语言解面试题1
- C语言面试题1
- c语言面试题1
- c语言面试题1
- C语言面试题1
- C语言面试题1
- c语言面试题1
- Rust语言
- Rust语言
- 用D语言解面试题2
- 用D语言解面试题3
- 用D语言解面试题4
- 用D语言解面试题5
- 用D语言解面试题6
- Rust语言学习笔记(1)
- 面试题1-- C语言1
- POJ 2029 Get Many Persimmon Trees (二维树状数组 or DP)
- 显示Hadoop文件系统中一组路径的文件信息
- 解决django的这个问题:Exception Value: no such table: blogango_blog
- Dijkstra算法步骤及代码
- 2.22
- Rust语言解面试题1
- php 中更简洁的三元运算符 ?:
- 总结Objective-C特点
- 彻底了解RxJava(一)基础知识
- 用C语言在桌面上创建一副bmp图像
- 苹果手机掉了怎么办,可以定位找回么
- 如何消除原生Android网络状态上的惊叹号
- 有序单向链表转换为平衡搜索二叉树
- ImageView中的几个属性