**挑战全网**判断10到N最快的回文数个数计算方法
程序员文章站
2024-03-14 20:54:35
...
10<num<=10 0000 0000
如:
测试:num=1000000000
输出109989
我觉得我这个比**《程序员代码面试指南》**里面的回文数判断快不少!
跪求大佬比我这代码更快的,新手求最快,求指点。
C++代码:
#include <iostream>
#include<time.h>
void mysym(int num){
int temp,n,k,count=0;
for(int i=10;i<=num;i++){
n=i;
k=n%10;
n/=10;
if(k==0) continue;
while(k<=n){
int x=n%10;
temp=k*10+x;
if(k==n||temp==n) {
count++;
break;
}
n/=10;
k=temp;
}
}
std::cout<<count<<std::endl;
}
int main()
{
int num=1000000000;
// 2147483647
clock_t start,end;
start=clock();
mysym(num); //计算函数
end=clock();
std::cout<<"mysym运行时间"<<(double)(end-start)/CLOCKS_PER_SEC<<std::endl;
return 0;
}
Java代码:
public class Main {
public static void main(String[] args) {
long start=System.currentTimeMillis(); //获取开始时间
int temp,n,k,count=0;
for(int i=10;i<=1000000000;i++){
n=i;
k=n%10;
n/=10;
if(k==0) continue;
while(k<=n){
int x=n%10;
temp=k*10+x;
if(k==n||temp==n) {
count++;
break;
}
n/=10;
k=temp;
}
}
System.out.println(count);
long end=System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间: "+(end-start)+"ms");
}
}
上一篇: 求素数个数(埃氏筛法和欧拉筛法)
下一篇: 输出小于等于n的素数