-
-
[原创]赛题1提交 - vxasm
-
2008-10-20 12:46 6947
-
支持论坛举办此类活动,重在参与!
主要的算法代码如下,算出结果的时间不超过1毫秒。
主要的算法代码如下,算出结果的时间不超过1毫秒。
// //函数功能:统计整数n中数字k的出现频率 // //参数1:n - 被统计的整数 //参数2:k - 要统计的数字 //返回值:该数字的出现频率 // int countx(int n, int k) { int count = 0; int factor = 1; int lower = 0; int curr = 0; int higher = 0; while (n/factor != 0) { lower = n - (n/factor) * factor; curr = (n/factor) % 10; higher = n / (factor*10); if (curr < k ) { // 如果当前位数字小于k,则:k的出现次数=高位数字×当前因子 count += higher * factor; } else if (curr == k) { // 如果当前位数字等于k,则:k的出现次数=高位数字×当前因子+低位数字+1 count += higher * factor + lower + 1; } else if (curr > k) { // 如果当前位数字大于k,则:k的出现次数=(高位数字+1)×当前因子 count += (higher + 1) * factor; } factor *= 10; } return count; }
[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。
赞赏
他的文章
看原图