C# 关于数值分配的算法
答案:1 悬赏:70 手机版
解决时间 2021-12-03 17:58
- 提问者网友:锁深秋
- 2021-12-02 20:28
C# 关于数值分配的算法
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-12-02 20:40
不知道你具体的要求严格与否,我写了个算法不算好的,但结果类似
static void Main(string[] args)
{
List lst1 = F(21, 12);
List lst2 = F(12, 12);
List lst3 = F(10, 12);
P(lst1);
P(lst2);
P(lst3);
Console.ReadLine();
}
static void P(List lst)
{
foreach (int n in lst)
Console.Write("{0} ", n);
Console.WriteLine();
}
public static List F(int num, int cnt)
{
List lst = new List();
for (int i = 0; i < cnt; i++)
{
lst.Add(0);
}
int n = num;
while (n > 0)
{
for (int i = 0; i < cnt; i++)
{
lst[i]++;
n--;
if (n <= 0)
break;
}
}
return lst;
}
追问嗯 先谢了
你的算法我看明白了 按顺序一个一个放 放完一遍这放一遍 直到num放完
ps:
若是第1种情况,实现2 2 2 2 2 2 2 2 2 2 1 0这种结果有什么好算法吗?
谢谢追答你没明确规则。你只是列举了一堆数字。
static void Main(string[] args)
{
List
List
List
P(lst1);
P(lst2);
P(lst3);
Console.ReadLine();
}
static void P(List
{
foreach (int n in lst)
Console.Write("{0} ", n);
Console.WriteLine();
}
public static List
{
List
for (int i = 0; i < cnt; i++)
{
lst.Add(0);
}
int n = num;
while (n > 0)
{
for (int i = 0; i < cnt; i++)
{
lst[i]++;
n--;
if (n <= 0)
break;
}
}
return lst;
}
追问嗯 先谢了
你的算法我看明白了 按顺序一个一个放 放完一遍这放一遍 直到num放完
ps:
若是第1种情况,实现2 2 2 2 2 2 2 2 2 2 1 0这种结果有什么好算法吗?
谢谢追答你没明确规则。你只是列举了一堆数字。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯