一个数字分组得算法

brucely 2003-09-16 10:51:39
例如:起始11111111×××结束11111111124数字断,每20个分一组,最后一组不足20就只有4个数


问这样一个给出起始数字和终止数字和分组数字后分多少组得算法如何写啊!
...全文
64 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
brucely 2003-09-16
  • 打赏
  • 举报
回复
每组数字如何列出明细,就是没组数都有哪些数字啊!
xiaocha 2003-09-16
  • 打赏
  • 举报
回复
前面搞错了,这很简单:
组数 = (终止数字+1-起始数字+每组个数-1) div 每组个数
brucely 2003-09-16
  • 打赏
  • 举报
回复
就是设置一个数字段或者号码区间,在区间内每隔若干个数就分为一组,分到最后不足一组按一组算
比如从0~123每20个数字分一组,就是分了7组最后一组只有121,122,123三个数

xiaocha 2003-09-16
  • 打赏
  • 举报
回复
s := '111222...1122312';

if not ((Length(s) div 20) in [0,4]) then raise exception.create('error');

N := (Length(s)+19) div 20;

first_str := copy(s,1,20);
last_str := copy(s,n*20-19,20);
brucely 2003-09-16
  • 打赏
  • 举报
回复
其始和结束得数字段是任意设置得!
xiaocha 2003-09-16
  • 打赏
  • 举报
回复
没明白,举个例子吧!
hiflower 2003-09-16
  • 打赏
  • 举报
回复
type
TA=array of array of Integer;

function abc(n1,n2:Integer;num:Integer):TA;
var
i:Integer;
j,k,n:Integer;
begin
n:=n1;
j:=(n2-n1+1) div num;
if (n2-n1+1) mod num<>0 then
num:=num+1;
setLength(Result,num);
for i:=0 to num-1 do
begin
SetLength(Result[i],j);
for k:=0 to j-1 do
begin
Result[i][k]:=n;
Inc(n);
if n>n2 then Exit;
end;
end;
end;

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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