值从1到n的n-1个数(无序,没有重复数), 用最有效率的方法挑出缺少的那个数 如题 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先把这 n-1 个数求和然后利用 (1+n)*n/2 - (求出来的和) 的办法算出缺的那个数 1、初始化下标为1..n的布尔数组,初始值为false2、循环无序数,置布尔数组对应下标元素值为true3、循环访问布尔数组,值为false的元素的下标即为缺少的数 [code=C#]int a=0; int[] amount = new int[n]; amount[0] = 34;//.......数据源 for (int i = 0; i < n - 2; i++) { if (amount[i] < amount[i + 1]) { a = amount[i]; } else { a = amount[i + 1]; } }code] 其实lz搞个方程式就出来了,设该数为x,现有的n-1的数的和为T,1~n的和为E(n)(那个求和符号打不出来。用E代替)则x+T=E(n)x=E(n)-T 仓库任务管理实现问题 求肋:在winform中引用WebService时出错(该WebService不在本机上) 关于结贴 string怎样转换为UFT8类型?30分! 【求教】 windows服务 恢复失败 关于marshal的用法!!(急) WPF,如何做一个QQ、360那种安装包 C#中有没有内建对Quoted-Printable编码转换的支持? 有没有开发类似Workflow Designer的图形技术或框架 SQL数据恢复 求教:bitmap之间复制图片出错 c#连接sqlserver问题
2、循环无序数,置布尔数组对应下标元素值为true
3、循环访问布尔数组,值为false的元素的下标即为缺少的数
int[] amount = new int[n];
amount[0] = 34;//.......数据源
for (int i = 0; i < n - 2; i++)
{
if (amount[i] < amount[i + 1])
{
a = amount[i];
}
else
{
a = amount[i + 1];
}
}code]
设该数为x,现有的n-1的数的和为T,1~n的和为E(n)(那个求和符号打不出来。用E代替)
则
x+T=E(n)
x=E(n)-T