1.产生20个不同的两位整数的随机数,并且对它们进行由小到大的排序。特别提醒:程序要自动生成20个不同的整数,而且这些整数必须是两位的,如:3不是两位整数,58是两位整数。
2.一个6位数乘以一个3位数,得到一个结果。但不清楚6位数中的两个数字是什么,而且结果中有一位数字也不清楚,请您编程,找出问号代表的数字,答案可能有多个。
12?56?
X 123
--------------
= 154?4987
3.在1到1,000,000的整数中,找出同时符合以下条件的数:
a.必须是质数
b.该数字各位数字之和为偶数,如:数字12345,各位数字之和为1+2+3+4+5=15,不是偶数。
4.Windows文件系统中,文件夹包含文件夹和文件,请你编写一段程序,找出C盘根目录下面的所有文件及文件夹,包括所有的子文件夹以及子文件夹的所有子孙。
using System.Collections.Generic;
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
//RandomSort();
//SearchNumber();
//SearchNumber2();
//SearchPrimeNum();
PrintFolder("D://test");
}
/// <summary>
/// 产生随机数,排序
/// </summary>
static void RandomSort()
{
List<int> list = new List<int>();
Random random = new Random();
int seed;
for (int i = 0; i < 20; i++)
{
seed = random.Next(10, 100);
while (list.Contains(seed))
{
seed = random.Next(10, 100);
}
list.Add(seed);
}
list.Sort();
foreach (int l in list)
{
Console.WriteLine(l.ToString());
}
Console.Read();
}
/// <summary>
/// 本质是120560*123+x*1000*123+y*123=15404987+z*10000
/// </summary>
static void SearchNumber()
{
for (int x = 0; x < 10; x++)
{
for (int y = 0; y < 10; y++)
{
//for (int z = 0; z < 10; z++)
//{
// if ((120560 + x * 1000 + y) * 123 == 15404987 + z * 10000)
// {
// Console.WriteLine(string.Format("x = {0}, y = {1}, z = {2}", x, y, z));
// }
//}
if ((120560 * 123 + x * 1000 * 123 + y * 123 - 15404987) % 10000 == 0)
{
Console.WriteLine(string.Format("x = {0}, y = {1}, z = {2}", x, y, (120560 * 123 + x * 1000 * 123 + y * 123 - 15404987) / 10000));
break;
}
}
}
Console.Read();
}
/// <summary>
/// 本质是把结果154?4987中的?用0-9来做个for循环,在循环里将这个结果除以123,如果得到的结果与被乘数进行比较得出?中代表的数字
/// </summary>
static void SearchNumber2()
{
for (int i = 0; i < 10; i++)
{
if (((15404987 + i * 10000) % 123) == 0)
{ //求余,确保能被123整除
string sMultiplicand = Convert.ToString((15404987 + i * 10000) / 123); //得出被乘数
if (sMultiplicand.Length == 6 && sMultiplicand.Substring(0, 2) == "12" && sMultiplicand.Substring(3, 2) == "56")
{
Console.WriteLine(sMultiplicand.Substring(2, 1));
Console.WriteLine(sMultiplicand.Substring(5, 1));
Console.WriteLine(i.ToString());
}
}
}
}
/// <summary>
/// 首先查找一个质数,
/// </summary>
static void SearchPrimeNum()
{
for (int i = 1; i <= 100; i++)
{
if (PrimeNum(i))
{
if (AddNumberIsEven(i))
{
Console.WriteLine(i.ToString());
}
}
}
Console.Read();
}
static bool PrimeNum(int maxNum)
{
int i = maxNum;
bool IsPrime = true;
//for (int j = 2; j < i; j++)
for (int j = 2; j <=Math.Sqrt(i); j++)
{
if (i % j == 0)
{
IsPrime = false;
break;//有因子证明是合数,马上退出循环。
}
}
return IsPrime;
}
/// <summary>
/// 判断奇偶数
/// </summary>
/// <param name="input"> </param>
/// <returns> </returns>
static bool AddNumberIsEven(int input)
{
int num = 0;
string numStr = input.ToString();
for (int i = 0; i < numStr.Length; i++)
{
num += int.Parse(numStr[i].ToString());
}
if (num % 2 == 0)
{
return true;
}
return false;
}
static bool IsDigitSumEven(int n)
{
int sum = 0;
while (n > 0)
{
sum += n % 10;
n /= 10;
}
return sum % 2 == 0;
}
public static void PrintFolder(string dir)
{
if (Directory.Exists(dir))
{
foreach (string d in Directory.GetFileSystemEntries(dir))
{
Console.WriteLine(d);
PrintFolder(d); //递归打印
}
}
}
public static void FindAllFile(string strPath)
{
Console.WriteLine(strPath);
string[] arrayFileNames = System.IO.Directory.GetFiles(strPath);
foreach (string strFileName in arrayFileNames)
{
Console.WriteLine(strFileName);
}
string[] arrayFileDirs = System.IO.Directory.GetDirectories(strPath);
foreach (string strSubPath in arrayFileDirs)C#笔试题目
{
FindAllFile(strSubPath);
}
}
}