值从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 怎样让TabControl控件随窗口的大小改变而改变 创建desktop.ini修改文件夹图标时遇到的问题 新手求教,关于派生类继承基类的构造函数 C#多线程问题 有关数学编辑器中mathML的问题.. C# 修改剪贴板内容出现问题,请帮忙 C# 如何在主窗体上使用子窗体的控件?? 基本问题, C#程序到其它的系统,缺少Dll不能运行。 FAQ已经分类,精华区已经添加,欢迎大家推荐! 求教: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