四道智力题,挑战你的编程极限!

KimoGao 2012-02-28 01:30:29
因为好多朋友已经在博客里粘贴代码了,所以直接给个链接好了。

不过希望大家点击前能留个脚印,来的都有分哦~

http://blog.csdn.net/keymo_/article/details/7298963
...全文
367 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
YapingXin 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 tianxia_taiping 的回复:]

引用 8 楼 arcan 的回复:

第一题
private int GetRestnumber(int count)
{
return Convert.ToInt32( Math.Pow(2, Convert.ToInt32( Math.Log( count,2))));
}


代码是简洁了,但有问题:一是不方便别人阅读,二是你把繁琐的事情留给cpu,不好,pow和log是……
[/Quote]

那么我21楼的答案应该符合你的要求吧。
YapingXin 2012-03-05
  • 打赏
  • 举报
回复
第一题:


public int Run()
{
int start = 1;
int k = 50 >> 1;
while (start <= k)
{
start <<= 1;
}

return start;
}
YapingXin 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 arcan 的回复:]

还得修改一下:
C# code

static void GetRestnumber(int count)
{
int i = 1;
for (i = 1; (i << 1) <= count; )
{
i =i << 1;
}
Console.WriteLine(i);
Console.Read();
}
[/Quote]


你为什么要把这种用户输入输出的语句夹杂在你的这个函数里?

多么不professional的做法。
g4_magicvr 2012-03-05
  • 打赏
  • 举报
回复
最少的代码……好吧 我很邪恶 给出一个思路好了

例如第一题:

public int sb()
{
return 32;
}

这不就是最简单的代码了么
zmkkobe 2012-03-04
  • 打赏
  • 举报
回复
不错的题目。
Arcan 2012-03-01
  • 打赏
  • 举报
回复
还得修改一下:

static void GetRestnumber(int count)
{
int i = 1;
for (i = 1; (i << 1) <= count; )
{
i =i << 1;
}
Console.WriteLine(i);
Console.Read();
}
Arcan 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 tianxia_taiping 的回复:]

代码是简洁了,但有问题:一是不方便别人阅读,二是你把繁琐的事情留给cpu,不好,pow和log是……
[/Quote]

主要是图省事,而且就执行一次,虽然相对普通运算比较耗费CPU时间,但也不至于太严重,毕竟不是在循环中频繁的使用。

写一个位运算的:

static void GetRestnumber(int count)
{
int i = 1;
for (i = 1; (i << 1) < count; )
{
i =i << 1;
}
Console.WriteLine(i);
Console.Read();
}
天下太平 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 arcan 的回复:]

第一题
private int GetRestnumber(int count)
{
return Convert.ToInt32( Math.Pow(2, Convert.ToInt32( Math.Log( count,2))));
}
[/Quote]

代码是简洁了,但有问题:一是不方便别人阅读,二是你把繁琐的事情留给cpu,不好,pow和log是很耗费时间的,借用+—运算是较好的,用位运算更快!
zhouxingyu896 2012-02-29
  • 打赏
  • 举报
回复
学习
帮顶
Arcan 2012-02-29
  • 打赏
  • 举报
回复
上面的是第三题的解答。
Arcan 2012-02-29
  • 打赏
  • 举报
回复

private static void nine()
{
int[] q = new int[9];// { 40320, 5040, 720, 120, 24, 6, 2, 1, 1 };
int allcount = 1;
for (int i = 1; i <= 9; i++)
{
q[9 - i] = allcount;
allcount = allcount * i;
}


for (int j = 0; j < allcount; j++)
{
int[] r = new int[9];
List<int> li = new List<int>();
for (int i = 0; i < 9; i++)
{
li.Add(i);
}
int y = j;
for (int i = 0; i < 9; i++)
{
int s = Convert.ToInt32(y / q[i]);
y = Convert.ToInt32(y % q[i]);
r[i] = li[s]+1;
li.RemoveAt(s);
}
List<int> jg = new List<int>();
for (int i = 0; i < 3; i++)
{
jg.Add(r[i * 3 + 0] + r[i * 3 + 1] + r[i * 3 + 2]);
jg.Add(r[0 + i] + r[3 + i] + r[6 + i]);
}
jg.Add(r[0] + r[4] + r[8]);
jg.Add(r[2] + r[4] + r[6]);

bool xd = true;
for (int i = 0; i < jg.Count-1; i++)
{
if (jg[i] != jg[i + 1])
{
xd = false;
break;
}
}
if (xd)
{
for (int i = 0; i < 3; i++)
{
Console.WriteLine(r[0+i*3].ToString() + "," + r[1+i*3].ToString() + "," + r[2+i*3].ToString());
}
Console.WriteLine("----");
}

}
Console.Read();
}
  • 打赏
  • 举报
回复
第三题 8 1 6
3 5 7
4 9 2
每条线都是15
  • 打赏
  • 举报
回复
第二题 30天 从周二开始 周三结束
Ny-6000 2012-02-29
  • 打赏
  • 举报
回复
Arcan 2012-02-29
  • 打赏
  • 举报
回复
第一题
private int GetRestnumber(int count)
{
return Convert.ToInt32( Math.Pow(2, Convert.ToInt32( Math.Log( count,2))));
}
Arcan 2012-02-29
  • 打赏
  • 举报
回复
第二题:

static void riqi()
{
for (int d = 28; d < 32; d++)
{
for (int startday = 0; startday < 7; startday++)
{
int y = d - 28;
int MonCount = 4;
int TueCount = 4;
int WedCount = 4;
int ThuCount = 4;
if ((startday+ y>1)&&(startday<=1)) MonCount++;
if ((startday + y > 2) && (startday <= 2)) TueCount++;
if ((startday + y > 3) && (startday <= 3)) WedCount++;
if ((startday + y > 4) && (startday <= 4)) ThuCount++;

if ((MonCount + 1 == TueCount) && (WedCount == ThuCount + 1))
{
Console.WriteLine("Sun Mon Tue Wed Thu Fri Sat");
for(int i=0;i<startday ;i++)
Console.Write(" _ ");
for (int i = 1; i <= d; i++)
{
Console.Write(i.ToString("D2")+" ");
if ((i+startday) % 7 == 0)
{
Console.WriteLine();
}

}

}
}
}
Console.Read();
}
  • 打赏
  • 举报
回复
我就不说我不会
youzelin 2012-02-28
  • 打赏
  • 举报
回复
第一题:

private static int GetSurviver(int count)
{
string s = Convert.ToString(count, 2);
return (int)Math.Pow(2, s == "0" ? -1 : s.Length - 1);
}
q107770540 2012-02-28
  • 打赏
  • 举报
回复

//精简一下,可以只剩下4行代码 :
void Main()
{
var list=Enumerable.Range(1,50).Select((x,y)=>new {x=x,index=y+1});
while(list.Count()>1)
list=list.Where(x=>x.index%2==0).Select((x,y)=>new {x=x.x,index=y+1}); Console.WriteLine(list.First().x); //32
}
  • 打赏
  • 举报
回复
加载更多回复(1)
内容概要:本文档详细介绍了“南方数码房地一体内外业软件”的操作流程,涵盖从数据准备、外业调查、内外业数据对接,到内业数据处理与成果输出的完整工作链。主要包括调查底图制作(支持DWG、MDB、SHP及倾斜三维模型等多种数据源)、导出外业IDB工程文件、平板端外业调查(宗地与房屋核实、电子签章表确认、照片导出)、内外业数据对接(DB与照片数据导入),以及内业的宗地信息完善、界址属性设置、自然幢生成、房屋面积计算、户属性录入,并最终输出宗地图、房产分户图、各类报表及MDB数据库等成果。; 适合人群:从事农村房地一体权籍调查的测绘、不动产登记及相关地理信息行业的内业处理人员、外业调查员和技术管理人员,需具备基础GIS或CAD操作能力; 使用场景及目标:①指导用户系统完成从原始数据到不动产登记成果的全流程作业;②实现外业调查数据高效采集与内业自动化处理衔接,提升房地一体确权登记工作的标准化与效率; 阅读建议:建议结合实际项目按章节顺序操作,重点关注数据格式转换、IDB工程交互逻辑及成果图输出设置,配合软件界面逐步实践,确保各环节数据完整性与准确性。
内容概要:本文围绕“面向高精度电流控制的PMSM多参数PSO辨识模型研究”,结合Simulink仿真实现,系统探讨了在高性能电机控制背景下,如何利用粒子群优化算法(PSO)对永磁同步电机(PMSM)电流环的关键参数进行多参数协同辨识。研究通过建立PMSM的精确动态数学模型,设计基于PSO的参数辨识框架,实现了对电机电感、电阻、反电动势常数等核心参数的高效在线或离线辨识,有效提升了电流控制的精度与系统鲁棒性。文中详细阐述了PSO算法的实现机制,包括适应度函数构造、参数编码策略与收敛判据,并在Simulink中构建了完整的联合仿真平台,通过大量仿真实验验证了该方法相较于传统辨识技术在准确性、稳定性和适应性方面的显著优势,为高动态性能电机驱动系统的参数获取提供了可靠的技术路径。; 适合人群:自动化、电气工程、控制科学与工程等相关专业的研究生、科研人员及从事高性能电机驱动系统开发的工程师。; 使用场景及目标:①应用于高端制造、新能源汽车、航空航天等领域中对电流控制精度要求极高的PMSM控制系统开发;②作为智能优化算法(如PSO)在电机参数辨识领域应用的典型案例,服务于教学演示与学术研究;③为后续开展自适应控制、智能容错控制及多物理场耦合建模等前沿课题提供坚实的参数辨识基础和技术参考。; 阅读建议:读者应具备扎实的电机控制理论基础(如FOC矢量控制、现代控制理论)以及熟练的MATLAB/Simulink仿真能力,建议在学习过程中结合文中的仿真模型,动手复现PSO参数辨识的完整流程,深入分析算法参数设置对辨识结果的影响,从而全面掌握其工程应用精髓。

7,776

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧