求一算法, 高手进[在线等]

hjzdhr 2010-12-07 04:11:35
假设我有个日历,总共显示5周, 每一行设定最多显示6个行程安排, 即整个日历最多纵向显示30个行程安排. 请教一个算法, 可以满足以下要求:

1. 每行的高度可以动态变化, 尽量取最少的那行来补充最多的行, 比如 :
0 1
1 6
输入 5 ==> 6 输出
10 10
7 7

当某行有0个事件时, 要求其高度至少为1.

2. 当所有行都超过6的时候, 只显示 6, 6, 6, 6, 6


...全文
155 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
vitalgg 2010-12-07
  • 打赏
  • 举报
回复
当有0行时有点跟楼主的意思不一致。
不过我感觉这么排好看一些。
vitalgg 2010-12-07
  • 打赏
  • 举报
回复
<?php
$week = array(0,10,10,10,8);
print_r($week);
// 保证每周最少为一行。
for ($i=0;$i<5;$i++){
if($week[$i] <=0){
$week[$i] = 1;
}
}
//当总行数小于30时,最少的行数+1 至到30行为止
while (array_sum($week) < 30 ){
for ($i=0;$i<5 ;$i++){
if($week[$i] == min($week)){
$week[$i]++ ;
break;
}
}
}
//当总行数大于30时,最多的行数-1 至到30行为止
while (array_sum($week) > 30 ){
for ($i=0;$i<5 ;$i++){
if($week[$i] == max($week)){
$week[$i]-- ;
break;
}
}
}
print_r($week);
?>
hjzdhr 2010-12-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xizi2002 的回复:]

绕蒙是外层将你蒙的, 你问的问题是怎么处理. 内层的处理仅仅是一个case (条件). 或endif(条件).
如果让别人再去想外层, 那相应于写一个日历~你可以多加些注释, 比如说, 这是//外层第一层来区分对持.
[/Quote]

我要的结果只是 把网页上的日历打印出来, 是打印的日历上各行高度的分配. 可能我没表达清楚.
xizi2002 2010-12-07
  • 打赏
  • 举报
回复
绕蒙是外层将你蒙的, 你问的问题是怎么处理. 内层的处理仅仅是一个case (条件). 或endif(条件).
如果让别人再去想外层, 那相应于写一个日历~你可以多加些注释, 比如说, 这是//外层第一层来区分对持.
hjzdhr 2010-12-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xizi2002 的回复:]

循环判断一下不就完了. 简单的就是最好的, 不用要求那么多.
[/Quote]

我就是在循环里绕蒙了, 求高手指点
hjzdhr 2010-12-07
  • 打赏
  • 举报
回复
把日历设置成7列(日),5行(周) 打印这个日历时, 6是指一张纸里平均分配日历的事件数, 即一张纸正好装30个事件.

网页里是可以用滚动条显示10个, 7个事件的, 但打印是时候要求一个月只能打在一张纸里. 我要的结果是计算打印时, 日历里面每行的高度分配.
xizi2002 2010-12-07
  • 打赏
  • 举报
回复
循环判断一下不就完了. 简单的就是最好的, 不用要求那么多.
沪php攻城师 2010-12-07
  • 打赏
  • 举报
回复
真的看不懂啊,楼主表达的清晰点
hjzdhr 2010-12-07
  • 打赏
  • 举报
回复
求高手现身
hjzdhr 2010-12-07
  • 打赏
  • 举报
回复
我算这个是要打印日历, 因为一张纸的高度是有限的.
hjzdhr 2010-12-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 heyc1998 的回复:]

在下愚昧!未看懂!
[/Quote]

可以参考google日历, 就是计算日历每行是几个事件的高度.
在-云端 2010-12-07
  • 打赏
  • 举报
回复
在下愚昧!未看懂!
hjzdhr 2010-12-07
  • 打赏
  • 举报
回复
擦 横着来 0, 1, 5, 10, 7 应该输出 1, 6, 6, 10, 7
hjzdhr 2010-12-07
  • 打赏
  • 举报
回复
格式有问题阿

0 1
1 6
输入 5 ==> 6 输出
10 10
7 7




21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧