php实现金币提现,哪位php大神帮忙写个金币转换函数
100铜币=1银 100银=1金
想写个根据多少铜币 返回相应等级的钱
比如参数为102135铜币 那就是返回10金21银35铜
比如参数为1544铜币 那就是返回15银44铜
以此类推...
php基础不扎实 不知道怎么写最精简
回复内容:
100铜币=1银 100银=1金
想写个根据多少铜币 返回相应等级的钱
比如参数为102135铜币 那就是返回10金21银35铜
比如参数为1544铜币 那就是返回15银44铜
以此类推...
php基础不扎实 不知道怎么写最精简
/**
* [format_every 换算进制到指定单位]
* @param integer $number [需要换算数值]
* @param integer $ary [每个单位之间的进制]
* @param array $units [每个单位的描述]
* @return [String] [格式化结果]
*/
function format_every($number,$ary = 100,$units = array('铜', '银', '金')) {
$format = '';
$prev = 0;
for($i = count($units) - 1 ; $i >= 0 ; $i--){
if($next = floor($number / pow($ary, $i))){
$format .= $next - $prev * $ary . $units[$i];
}
$prev = $next;
}
return $format;
}
//简单点的
print_r(format_every(12345678));//1234金56银78铜
//假如1坨=100金,则:
print_r(format_every(12345678,100,array('铜', '银', '金','坨')));//12坨34金56银78铜
//字节换算
print_r(format_every(123456789,1024,array('B', 'KB', 'MB', 'GB', 'TB', 'PB')));//117MB755KB277B
function exchange($copper)
{
$gold = (int) ($copper / 10000);
$silver = (int) ($copper / 100 - $gold * 100);
$copper = $copper % 100;
return array($gold, $silver, $copper);
}
简单做。从额数最大的金开始处理,先整除,再模除,金银铜依次处理。输出的时候判断再做个判断,代码如下:
0) {
$result .= $gold ."金";
}
if($sliver > 0) {
$result .= $sliver ."银";
}
if($cu > 0) {
$result .= $cu ."铜";
}
return $result;
}
//test
echo level(102135);
echo "";
echo level(1544);
echo "";
echo level(99);
function level($money){
$ag = floor($money /100);
$cu = $money % 100;
$golden = floor($ag / 100);
$ag = $ag % 100;
echo "{$golden}金{$ag}银{$cu}铜币";
}
很简单的写了一个。
def make_change(money, coins)
dp = [0]
path = []
result = {}
coins.each_with_index do |coin, index|
coin.upto(money) do |i|
if !dp[i - coin].nil? && (dp[i].nil? || dp[i - coin] + 1 < dp[i])
dp[i] = dp[i - coin] + 1
coins[index] += 1
path[i] = i - coin
end
end
end
if path[money].nil?
puts "impossible." and return
end
i = money
loop do
break if path[i].nil?
result[i - path[i]] ||= 0
result[i - path[i]] += 1
i = path[i]
end
p result # 具体解
end
make_change(102135, [10000, 100, 1])
# => {1=>35, 100=>21, 10000=>10}
嗯...不知道计算速度快 还是字符串截取速度快
结果: 10金币21铜币35银币
function change($number){
static $jin;
static $yin;
static $ton;
if($number >= pow(10,4)){
$jin = intval($number/pow(10,4));
change($number -$jin*pow(10,4));
}else if($number >= pow(10,2)){
$yin = intval($number/pow(10,2));
change($number-$yin*pow(10,2));
}else{
$ton = $number;
}
return array($jin,$yin,$ton);
}
$number = 10110245;
print_r(change($number));
/**
* @param $coins int 币数
* @return string 格式化信息
*/
function coinFormatter($coins)
{
$coins = intval($coins);
$jin = intval($coins/10000);
$yin = intval($coins/100 - $jin*100);
$tong = $coins%100;
$info = '';
if($jin>0) {
$info = $jin . "金";
}
if($yin>0){
$info = $info.$yin."银";
}
if($tong >0){
$info = $info.$tong."铜";
}
return $info;
}
echo coinFormatter(114523);
echo "\n";
echo coinFormatter(523);
echo "\n";
echo coinFormatter(3);
/*
输出结果:
11金45银23铜
5银23铜
3铜
*/
关注微信公众号php技术大全:phpgod,精彩分享每日不断。
相关标签:php
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php实现金币提现,哪位php大神帮忙写个金币转换函数相关推荐
- 秒表c语言程序代码,求大神帮忙写一篇简单的C语言秒表程序, 谢谢。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include Unsigned char code Tab[10]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0 ...
- java写一个窗体并连接MySQL_大神帮忙写一个简单地java页面,连接MySQL数据库之后能够显示数据库上的数据...
展开全部 用jdbc 连接mysql数据库就行了,网上搜下一大把. --记得在classpath下加入mysql 的jdbc驱动包. /** * @author :来e68a84e8a2ad32313 ...
- 复旦和浙大计算机考研难度,复旦计算机惊现40多位400+大神,浙大、川大还有450+...
原标题:复旦计算机惊现40多位400+大神,浙大.川大还有450+ 今天多个省份开放了考研初试查询系统,看着网上晒出的分数不得不说考研太难了,复旦的计算机今年大神扎堆,400+的大神就有40多位,最高 ...
- 大神的自动练法师技能,想单独提取,练火星球到 75熟练度,,求大神帮忙提取下。
大神的自动练法师技能,想单独提取,练火星球到 75熟练度,,求大神帮忙提取下. 2014-04-26 00:50:02| 分类: assa 脚本范文列 |字号 订阅 下载LOFTER我的照片书 | d ...
- 拱猪java,有没有大神帮忙解决一下这个项目启动报错的问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2018-07-10 15:36:34 [localhost-startStop-1] - [ERROR] Context initialization ...
- 拱猪java_有没有大神帮忙解决一下这个项目启动报错的问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2018-07-10 15:36:34 [localhost-startStop-1] - [ERROR] Context initialization ...
- aoc显示器开机显示计算机,_求各路大神帮忙解决,配置如下 电脑开机AOC显示器显示无信号,每次都要重新拔了再插才有画面_...
网友求助:_求各路大神帮忙解决,配置如下 电脑开机AOC显示器显示无信号,每次都要重新拔了再插才有画面_ 问题求各路大神帮忙解决,配置如下 电脑开机AOC显示器显示无信号,每次都要重新拔了再插才有画面 ...
- matlab gm 1 1,MATLAB 如何用GM(1,1)做预测?请大神帮忙!
怎么用GM(1,1)做预测?前15组建模 后3组验证 求大神帮忙 X1 X2 X3 X4 X5 ...
- java主界面设置背景图片_java 窗体设置背景图片问题?(附上登陆界面代码,我想加个背景图片,求大神帮忙改改)...
java 窗体设置背景图片问题?(附上登陆界面代码,我想加个背景图片,求大神帮忙改改) 关注:223 答案:4 mip版 解决时间 2021-01-26 22:09 提问者非莪莫属 2021-01 ...
最新文章
- ubuntu14.04下使用A3E生成satg配置
- python grpc_python中grpc的使用示例
- windows系统连接***后不能上网
- java编写斐波那契数列,实战案例
- 任意文件上传之绕过云waf+本地防火墙双重防护
- 零中频接收机频率转换图_【鼎阳硬件智库原创︱频谱分析仪】频谱分析仪应用解惑之频率分辨力...
- App后台开发运维和架构实践学习总结(13)——OAuth 2.0 概述流程理解
- 想要轻松入门数据分析,这些知识不得不看!
- 7-1 购买火车票 (15 point(s))
- mysql double 和Oracle,oraclemysql对比
- ECLIPSE远程调试TOMCAT.
- ie11不兼容java_解决ie11不兼容的多个方法
- KindEditor实现上传图片与回显
- 学习笔记(三):WiFi-Sleep
- spss入门——简单的数据预处理到时间序列分析系列(五)
- mysql 语法大全
- 库克是个挺不错的接班人,但是苹果公司的价值已经见顶
- 使用MATLAB2010实现AVI视频播放
- 1144_Docker的基本介绍
- 用户研究方法定性定量_用户体验测试:定性测试
热门文章
- Allegro PCB Design GXL (legacy) 16.6 - 使用泪滴之后,删除泪滴导致出现的异常
- 医疗核心关键词排名,为什么说要用百家号做
- pythonidle如何调字体_python IDLE 背景以及字体的修改
- Efficient Parameter-free Clustering Using First Neighbor Relations
- 神经网络反向传播的作用,双向传播的神经网络
- python展开阅读全文_展开阅读全文 js 爬虫操作
- 查找论文对应开源代码的神器(Papers with Code)
- python爬虫之多线程、多进程爬虫
- OpenCV中的马赛克效果
- wechall靶场training系列通关记录