当前位置:编程学习 > C#/ASP.NET >>

紧急求助!!!!!如下题目!!!

有一个如下的整数三角阵:
 
          1
         2 3
        4 5 6
       ... ...
      n n+1 ... n+k
 
三角阵的水平方向为X轴,右上至左下方向为Y轴,这两个轴唯一确定了
三角阵中的任意一个整数的坐标。比如整数1的坐标是(1,1),整数
5的坐标是(3,2)。现要求给出三角阵中的任意一个整数,求出该整
数对应的坐标。比如:给出整数4,需要求出其坐标(3,1)。要求给
出一个算法的描述,该算法要求尽可能的快,不需要写源代码。然后回答
以下问题:
1.你的算法的时间复杂度是多少?
2.从时间复杂度的角度来说你的算法是最优的么?为什么? --------------------编程问答-------------------- 楼主早上好,老实说真的惭愧的要死,名词很熟悉,让我具体说说我还真说不来怎么算,悔当年没好好学
马上 Google一下 去 

以下是我写的一笑段  楼主参考一下吧
int a = 40;     // 随便定义了一个数测试一下
int rn=0;       // 行
int cn=0;       // 列
for (int i = 0; i <= a; i++)
{
   if (i * (i + 1) / 2 >=a)
   {
      rn = i ;
      cn = a - (i * (i - 1)/2);
      break;
   }
}
Console.WriteLine("Row:" + rn.ToString() + "  Col:" + cn.ToString());
Console.Read();
没仔细调试  可能错的也有可能   包含包含  哈哈
时间复杂度 如果我没记错的话  应该就是  O(a)  哈哈 刚刚Google的 哈哈  不要见笑 

--------------------编程问答-------------------- 时间复杂度 貌似我也记不得了。 --------------------编程问答-------------------- 算法面试题  --------------------编程问答-------------------- 就是一个变相的“树”的问题,给出你一个数,
1、能求出是第几层吗?
2、根据层数能确定最小值及最大值,这样也就不难确定这个数的所在层的位置了,

所以时间复杂度应为O(1); --------------------编程问答-------------------- 如果还搞不定,回头看看数据结构“树”那一章,关于求树的结点所在的层及列,还有每层的结点个数吧,一模一样的题目; --------------------编程问答--------------------
引用 1 楼 yinxiaowei823 的回复:
楼主早上好,老实说真的惭愧的要死,名词很熟悉,让我具体说说我还真说不来怎么算,悔当年没好好学 
马上 Google一下 去 

以下是我写的一笑段  楼主参考一下吧 
int a = 40;    // 随便定义了一个数测试一下 
int rn=0;      // 行 
int cn=0;      // 列 
for (int i = 0; i <= a; i++) 

  if (i * (i + 1) / 2 >=a) 
  { 
      rn = i ; 
      cn = a - (i * (i - 1)/2); 
      break; 
  } 

Consol…


对待一个如此有规律的问题,大可不必这样做,如果你确定给定的a很少很小的话,这样做效率影响不大,如果a到了成千上百,就比较麻烦了, --------------------编程问答--------------------
引用 6 楼 lianshaohua 的回复:
以下是我写的一笑段  楼主参考一下吧 
int a = 40;    // 随便定义了一个数测试一下 
int rn=0;      // 行 
int cn=0;      // 列 
for (int i = 0; i <= a; i++) 

  if (i * (i + 1) / 2 >=a) 
  { 
      rn = i ; 
      cn = a - (i * (i - 1)/2); 
      break; 
  } 

Consol… 


对待一个如此有规律的问题,大可不必这样做,如果你确定给定的a很少很小的话,这样做效率影响不大,如果a到了成千上百,就比较麻烦了,

楼上说的没错,在上面的问题程序里面再加一个遍历算法 --------------------编程问答-------------------- --------------------编程问答-------------------- 楼上说得很有道理 小弟谢过,考试题 呵呵 起先想到跟sf差不多,没太多想,现在想想确实,谢过
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,