求一組9位數且不重複(1-9組成),滿足前n位能被n整除,例如:取先二位能被2整除,取先三位能被3整除...取先九位能被9整除。...

本文介绍了一个使用C#编写的程序,该程序旨在生成一个特殊的9位数字序列。这个序列的特点是每位数字都不重复,并且从序列的第一位到任意第n位组成的数字能够被n整除。文章通过一个无限循环来生成满足条件的数字序列,并记录了生成过程所消耗的时间。
ContractedBlock.gifExpandedBlockStart.gifCode
            Stopwatch l_cc_stopWatch = new Stopwatch();
            l_cc_stopWatch.Start();

            Random rad 
= new Random();
            
while (true)
            {
                
string ts = string.Empty;
                
while (ts.Length < 9)
                {
                    
string tmp = rad.Next(110).ToString();
                    
if (ts.IndexOf(tmp) < 0)
                    {
                        ts 
+= tmp;  //得到9位不重複數
                    }
                }
                
bool flag = false;
                
for (int m = 2; m <= 9; m++)
                {
                    
if (Int32.Parse(ts.Substring(0, m)) % m == 0)  //前n位能被n整除
                    {
                        flag 
= true;
                    }
                    
else
                    {
                        flag 
= false;
                    }

                    
if (flag == false)
                    {
                        
break;
                    }
                }

                
if (flag)
                {
                    Console.WriteLine(ts);
                    
break;
                }
            }

            l_cc_stopWatch.Stop();
            Console.WriteLine(
"{0}:seconds", l_cc_stopWatch.Elapsed.TotalSeconds);

转载于:https://www.cnblogs.com/wang123/archive/2009/02/04/1383814.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值