Discuz教程网

用C#满足了一个现实的需求

[复制链接]
authicon 空空 发表于 2010-11-24 09:28:25 | 显示全部楼层 |阅读模式
今天发生了一件很有意思的事情,一客户要求给他编一些数码,并且特别指出不要"4,14......104"等,凡是尾号为4的统统不要,这个如果手动编排也能实现,就是太麻烦了些,咱们是搞编程的嘛,自然有自己的快捷方法。
using System;
namespace zuo_Company.MyTestNoFourProject{
public class TestMain{
    static void Main(string [] args){
        int four = 4;
        for(int i=1;i<151;i++){
            if(i == four){    //如果等于4
                four += 10;    //重新定位,跳过4之后,重赋为14,依次类推24,34.........144
                continue;    //结束本次循环,进入下次循环
            }
            Console.Write("{0}\t",i);    //进行输出,且在数字后面插入一个8字节的空位
            if(i%10 == 0){    //每当一行输出了10个数字时
                Console.WriteLine();    //输出一个换行符
            }
        }
    }
}
}
该程序的运行结果为:
D:\Csharp>NoFour
1       2       3       5       6       7       8       9       10
11      12      13      15      16      17      18      19      20
21      22      23      25      26      27      28      29      30
31      32      33      35      36      37      38      39      40
41      42      43      45      46      47      48      49      50
51      52      53      55      56      57      58      59      60
61      62      63      65      66      67      68      69      70
71      72      73      75      76      77      78      79      80
81      82      83      85      86      87      88      89      90
91      92      93      95      96      97      98      99      100
101     102     103     105     106     107     108     109     110
111     112     113     115     116     117     118     119     120
121     122     123     125     126     127     128     129     130
131     132     133     135     136     137     138     139     140
141     142     143     145     146     147     148     149     150
---------------------------------------------------------------------
纵观整个结果,确实没有一个结尾为4的编码,但是有40...49这样的编码,还有140...149这样的一组,要想把这样的也踢掉,该怎么做呢,我在这里给一个小提示,简单的很:
40/10 = 4
140/10 = 14
400/100 = 4
不知道各位看官,看到上面三行除法结果,有没有什么启发,这三行给出的提示信息为,当变量整除10的时候,会把这个编码的十位数字给提取出来,整除100提取百位的数字,嗯,就这样
--------------------------------------------------------------------------------
话说用上面的方式好像很困难,因为每次都得知道数字的位数,才可以进行除法得单个数,为了让这个需求变得可以动态一些,现推出用正则表达式进行查询数字串里是否含有4,这样一来省事不少,可以进行动态的输入要遍历的任意大小的数字,虽然这其间转换为了字符串,又用正则进行了匹配,但个人认为相比较之下效率方面还是比较快的。
using System;
using System.Text.RegularExpressions;   //引入正则表达式的命名空间
namespace zuo_Company.TestDeleFourProject
{
    public class TestMain
    {
        static void Main()
        {
            for (int i = 1; i < 1800; i++)
            {
                if (SelcFour(i))
                    continue;
                Console.Write("{0}\t",i);
                if (i % 10 == 0)
                    Console.WriteLine();
            }
        }
        static bool SelcFour(int x) //判断数字里是否含有4
        {
            bool isFour = false;
            Regex rx = new Regex(@"(4)+");  //声明一个正则对象
            MatchCollection mc = rx.Matches(x.ToString());  //进行匹配
            if (mc.Count > 0)   //匹配数量
                return true;
            return isFour;
        }
    }
}
执行后的结果:
D:\Csharp>DeleFour
1       2       3       5       6       7       8       9       10
11      12      13      15      16      17      18      19      20
21      22      23      25      26      27      28      29      30
31      32      33      35      36      37      38      39      50
51      52      53      55      56      57      58      59      60
61      62      63      65      66      67      68      69      70
71      72      73      75      76      77      78      79      80
81      82      83      85      86      87      88      89      90
91      92      93      95      96      97      98      99      100
101     102     103     105     106     107     108     109     110
111     112     113     115     116     117     118     119     120
121     122     123     125     126     127     128     129     130
131     132     133     135     136     137     138     139     150
151     152     153     155     156     157     158     159     160
161     162     163     165     166     167     168     169     170
171     172     173     175     176     177     178     179     180
181     182     183     185     186     187     188     189     190
191     192     193     195     196     197     198     199     200
201     202     203     205     206     207     208     209     210
211     212     213     215     216     217     218     219     220
221     222     223     225     226     227     228     229     230
231     232     233     235     236     237     238     239     250
251     252     253     255     256     257     258     259     260
261     262     263     265     266     267     268     269     270
271     272     273     275     276     277     278     279     280
281     282     283     285     286     287     288     289     290
291     292     293     295     296     297     298     299     300
301     302     303     305     306     307     308     309     310
311     312     313     315     316     317     318     319     320
321     322     323     325     326     327     328     329     330
331     332     333     335     336     337     338     339     350
351     352     353     355     356     357     358     359     360
361     362     363     365     366     367     368     369     370
371     372     373     375     376     377     378     379     380
381     382     383     385     386     387     388     389     390
391     392     393     395     396     397     398     399     500
501     502     503     505     506     507     508     509     510
511     512     513     515     516     517     518     519     520
521     522     523     525     526     527     528     529     530
531     532     533     535     536     537     538     539     550
551     552     553     555     556     557     558     559     560
561     562     563     565     566     567     568     569     570
571     572     573     575     576     577     578     579     580
581     582     583     585     586     587     588     589     590
591     592     593     595     596     597     598     599     600
601     602     603     605     606     607     608     609     610
611     612     613     615     616     617     618     619     620
621     622     623     625     626     627     628     629     630
631     632     633     635     636     637     638     639     650
651     652     653     655     656     657     658     659     660
661     662     663     665     666     667     668     669     670
671     672     673     675     676     677     678     679     680
681     682     683     685     686     687     688     689     690
691     692     693     695     696     697     698     699     700
701     702     703     705     706     707     708     709     710
711     712     713     715     716     717     718     719     720
721     722     723     725     726     727     728     729     730
731     732     733     735     736     737     738     739     750
751     752     753     755     756     757     758     759     760
761     762     763     765     766     767     768     769     770
771     772     773     775     776     777     778     779     780
781     782     783     785     786     787     788     789     790
791     792     793     795     796     797     798     799     800
801     802     803     805     806     807     808     809     810
811     812     813     815     816     817     818     819     820
821     822     823     825     826     827     828     829     830
831     832     833     835     836     837     838     839     850
851     852     853     855     856     857     858     859     860
861     862     863     865     866     867     868     869     870
871     872     873     875     876     877     878     879     880
881     882     883     885     886     887     888     889     890
891     892     893     895     896     897     898     899     900
901     902     903     905     906     907     908     909     910
911     912     913     915     916     917     918     919     920
921     922     923     925     926     927     928     929     930
931     932     933     935     936     937     938     939     950
951     952     953     955     956     957     958     959     960
961     962     963     965     966     967     968     969     970
971     972     973     975     976     977     978     979     980
981     982     983     985     986     987     988     989     990
991     992     993     995     996     997     998     999     1000
1001    1002    1003    1005    1006    1007    1008    1009    1010
1011    1012    1013    1015    1016    1017    1018    1019    1020
1021    1022    1023    1025    1026    1027    1028    1029    1030
1031    1032    1033    1035    1036    1037    1038    1039    1050
1051    1052    1053    1055    1056    1057    1058    1059    1060
1061    1062    1063    1065    1066    1067    1068    1069    1070
1071    1072    1073    1075    1076    1077    1078    1079    1080
1081    1082    1083    1085    1086    1087    1088    1089    1090
1091    1092    1093    1095    1096    1097    1098    1099    1100
1101    1102    1103    1105    1106    1107    1108    1109    1110
1111    1112    1113    1115    1116    1117    1118    1119    1120
1121    1122    1123    1125    1126    1127    1128    1129    1130
1131    1132    1133    1135    1136    1137    1138    1139    1150
1151    1152    1153    1155    1156    1157    1158    1159    1160
1161    1162    1163    1165    1166    1167    1168    1169    1170
1171    1172    1173    1175    1176    1177    1178    1179    1180
1181    1182    1183    1185    1186    1187    1188    1189    1190
1191    1192    1193    1195    1196    1197    1198    1199    1200
1201    1202    1203    1205    1206    1207    1208    1209    1210
1211    1212    1213    1215    1216    1217    1218    1219    1220
1221    1222    1223    1225    1226    1227    1228    1229    1230
1231    1232    1233    1235    1236    1237    1238    1239    1250
1251    1252    1253    1255    1256    1257    1258    1259    1260
1261    1262    1263    1265    1266    1267    1268    1269    1270
1271    1272    1273    1275    1276    1277    1278    1279    1280
1281    1282    1283    1285    1286    1287    1288    1289    1290
1291    1292    1293    1295    1296    1297    1298    1299    1300
1301    1302    1303    1305    1306    1307    1308    1309    1310
1311    1312    1313    1315    1316    1317    1318    1319    1320
1321    1322    1323    1325    1326    1327    1328    1329    1330
1331    1332    1333    1335    1336    1337    1338    1339    1350
1351    1352    1353    1355    1356    1357    1358    1359    1360
1361    1362    1363    1365    1366    1367    1368    1369    1370
1371    1372    1373    1375    1376    1377    1378    1379    1380
1381    1382    1383    1385    1386    1387    1388    1389    1390
1391    1392    1393    1395    1396    1397    1398    1399    1500
1501    1502    1503    1505    1506    1507    1508    1509    1510
1511    1512    1513    1515    1516    1517    1518    1519    1520
1521    1522    1523    1525    1526    1527    1528    1529    1530
1531    1532    1533    1535    1536    1537    1538    1539    1550
1551    1552    1553    1555    1556    1557    1558    1559    1560
1561    1562    1563    1565    1566    1567    1568    1569    1570
1571    1572    1573    1575    1576    1577    1578    1579    1580
1581    1582    1583    1585    1586    1587    1588    1589    1590
1591    1592    1593    1595    1596    1597    1598    1599    1600
1601    1602    1603    1605    1606    1607    1608    1609    1610
1611    1612    1613    1615    1616    1617    1618    1619    1620
1621    1622    1623    1625    1626    1627    1628    1629    1630
1631    1632    1633    1635    1636    1637    1638    1639    1650
1651    1652    1653    1655    1656    1657    1658    1659    1660
1661    1662    1663    1665    1666    1667    1668    1669    1670
1671    1672    1673    1675    1676    1677    1678    1679    1680
1681    1682    1683    1685    1686    1687    1688    1689    1690
1691    1692    1693    1695    1696    1697    1698    1699    1700
1701    1702    1703    1705    1706    1707    1708    1709    1710
1711    1712    1713    1715    1716    1717    1718    1719    1720
1721    1722    1723    1725    1726    1727    1728    1729    1730
1731    1732    1733    1735    1736    1737    1738    1739    1750
1751    1752    1753    1755    1756    1757    1758    1759    1760
1761    1762    1763    1765    1766    1767    1768    1769    1770
1771    1772    1773    1775    1776    1777    1778    1779    1780
1781    1782    1783    1785    1786    1787    1788    1789    1790
1791    1792    1793    1795    1796    1797    1798    1799




上一篇:分享别人编写的C#操作Access数据库 并对Access数据类型与C#进行了对照
下一篇:C#之多线程(中)戏说“死锁”
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-3 05:29

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表