1.以下嵌套循环是hardcode,怎么样实现,输入一个数length,就会让循环嵌套多少层,灵活处理不是hardcode,例如
输入2就是从0-2,嵌套三层,每个循环都是从0-2,不能直接用22次放,33次放,44次放这样计算运算次数
int length=100;
for (int i = 0; i < length; i++)
{
  for (int i = 0; i < length; i++)
{
    for (int i = 0; i < length; i++)
{
.
...
              for (int i = 0; i < length; i++)
{
method1();
}
.....
}
}
}
答案:
例如:method(100,100);//这是调用下面的递归方法,level山西公务员考试专业分类目录是层数
void method(int length,int level)
{
  if(level<0) return;
  for (int i = 0; i < length; i++)
  {
    method(length,level-1)
  }
}
2.两个数相加除了用加法之外,在程序中是否还有其它实现方法,若有请说明具体算法?
3.有一个整型数组,里面可能存在相同的元素,请写一个算法,判断里面相同的元素是否超过一半,不要求出元素的值,和相同的个数,只要求返回true or false,四川人事考试网准考证打印例如:
{1,2,3,1,5,1,8,9,1,5,1,1,1}=true
{3,2,1,6,7,9,7,6,1,3}=false
要求时间复杂度是 O(n)
注意时间复杂度,超过O(n),都是无效的答案.
function check()
        {           
            var myarray = new Array();
            for(var i =0 ;i<100;i++)
                myarray[i] = 0;
               
            var text = $('#Text2').val();
            var intarray = text.split(",");           
            $(intarray).each(function(){               
                myarray[this] += 1;
山西省太原市人力资源考试网              // ;
            });
           
            var count = 0;
            for(var i =0;i< 100;i++){
                if(myarray[i]>1){                                 
                    count += myarray[i] -1;
                }
            }           
            + '\n'+'结果:'+ (count*2 >= intarray.length).toString());        }
public class CalNum
{
北京人力资源考试中心电话public int[] a;
public int[] arr1 = new int[] { 1, 2, 3, 1, 5, 1, 8, 9, 1, 5, 1, 1, 1 };
public int[] arr2 = new int[] { 3, 2, 1, 6, 7, 9, 7, 6, 1, 3 };
public bool Test(int [] arr1)
{
a = new int[100];
江苏省网上报名系统登录for (int i = 0; i < 100; i++) a[i] = 0;
foreach (int v in arr1)
a[v] += 1;
int count = 0;
for (int i = 0; i < 100; i++)
if (a[i] > 1) count += a[i] - 1;
return count > arr1.Length;
}
public void fun()
{
Console.WriteLine(Test(arr1));
Console.WriteLine(Test(arr2));
}
}
时间复杂度是O(n)
4.用编程语言实现以下各题,
1,求自然数10000以内所有11的倍数的和?
2,1+2+4+8+.......+2^100 = ?
3,有若干只鸡和兔,共30个头,100条腿,求有几只鸡几只兔
1. 10000 / 11 = 909
这个问题转化为 11 + 11*2 + 11*3 ... + 11*909
采用等差数列求和
S = (11 + 11 * 909) * 909 / 2 = 11 * 910 /2 = 5005
编程的思路和这个数学解法类似。这题实际上是考等差数列求和
2. 2022年山东省公务员考试等比数列求和 答案为 2^101 - 1
编程时转成求 2 101 次方键1 就可以了。这题主要考等比数列求和以及大数如何表示。
3. 设鸡为x 兔为y
x * 1 + y * 1 = 30
x * 2 + y * 4 = 100
y = 20 , x = 10
编程时求解这个公式就可以了,很简单。