| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1616 人关注过本帖
标题:[求助]请教C#的两个面试题
取消只看楼主 加入收藏
wj2051
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2005-8-24
收藏
 问题点数:0 回复次数:4 
[求助]请教C#的两个面试题
用C#程序写出10000的皆乘,要求精确到个位,今天我没写出来,真是惭愧,求教高手
还有一个是8x8的国际象棋棋盘,把一个棋子从左下角1,1的位置移到右上角8,8,每次都只能向右或向上移一格,求有多少种方法可以移到右上角
谢谢各位先
搜索更多相关主题的帖子: 面试 
2006-03-07 16:35
wj2051
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2005-8-24
收藏
得分:0 

还挺复杂的,谢谢楼上了


2006-03-08 10:17
wj2051
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2005-8-24
收藏
得分:0 
就是这种走法

2006-03-08 15:32
wj2051
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2005-8-24
收藏
得分:0 
就是是你讲的这种,不是八皇后,当初没仔细看,不好意思

2006-03-09 14:31
wj2051
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2005-8-24
收藏
得分:0 
以下是引用ytyt654在2006-3-9 16:31:00的发言:

在网上看到一个求10000!的c语言代码, 算法正确, 用C#改写一下, 大家一起研究.

程序运行需要等待一小段时间...

private void button2_Click(object sender, System.EventArgs e)
{
// COUNT必须为10的n次幂(0 =< n < 9)
const long COUNT = 10000;

long[] array = new long[COUNT];

// 初始化数组
array[0] = 1;
for (long i = 1; i < COUNT; i++)
{
array[i] = 0;
}

long k = 1; // k 是一个计数器

// 计算COUNT - 1的阶乘保存在数组中
for(long i = 1;i < COUNT; i++)
{
for (long j = 0; j < k; j++)
{
array[j] = array[j] * i;
}

// 进位(不是满十进一, 而是满COUNT进一)
for (long j = 0; j < k; j++)
{
if (array[j] / COUNT >= 1)
{
array[j + 1] += array[j] / COUNT;
array[j] %= COUNT;
if(j == k-1)
{
k++;
break;
}
}
}
}

// 输出计算结果
System.Text.StringBuilder sb = new System.Text.StringBuilder();

// 输出COUNT的倍数
for (long m = k - 1; m >= 0; m--)
{
sb.Append(array[m].ToString());
}

// 补0, 相当于最后乘以COUNT
for (int n = 0; n < Math.Log10(COUNT); n++)
{
sb.Append("0");
}

richTextBox1.Visible = false;
richTextBox1.Text = sb.ToString();
richTextBox1.Visible = true;
}


就是不能根据10的n次幂最后补零的方法来解,所以对方要求精确到个位


2006-03-10 11:07
快速回复:[求助]请教C#的两个面试题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019257 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved