版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lthirdonel/article/details/88737791
同样的逻辑代码,改成4种语言,运行结果及代码如下:
运行结果表
语言 | 时间 | 内存 |
---|---|---|
C++ | 4ms | 480KB |
PHP 7 | 9ms | 3932KB |
Java 1.8 | 14ms | 9364KB |
Python2.7 | 24ms | 5752KB |
运行结果截图:
- C++
- PHP7
- Java
- Python
代码:
- C++
class Solution {
public:
int NumberOf1Between1AndN_Solution(int n)
{
int result = 0;
int temp=n;
int bit=1;
if(temp==0){
return 0;
}
if(temp<10){
return 1;
}
while(temp>=1)
{
if(temp%10<1){
result += (int)(temp/10) * bit;
}
else if(temp%10>1){
result += ((int)(temp/10)+1) * bit;
}else{
result += (int)(temp/10) * bit+ n%bit+1;
}
temp/=10;
bit*=10;
}
return result;
}
};
- PHP7
<?php
function NumberOf1Between1AndN_Solution($n)
{
$result = 0;
$temp=$n;
$bit=1;
if($temp==0){
return 0;
}
if($temp<10){
return 1;
}
while($temp>=1)
{
if($temp%10<1){
$result += intval($temp/10) * $bit;
}
else if($temp%10>1){
$result += (intval($temp/10)+1) * $bit;
}else{
$result += intval($temp/10) * $bit+ $n%$bit+1;
}
$temp/=10;
$bit*=10;
}
return $result;
}
- Java
public class Solution {
public int NumberOf1Between1AndN_Solution(int n) {
int result = 0;
int temp=n;
int bit=1;
if(temp==0){
return 0;
}
if(temp<10){
return 1;
}
while(temp>=1)
{
if(temp%10<1){
result += (int)(temp/10) * bit;
}
else if(temp%10>1){
result += ((int)(temp/10)+1) * bit;
}else{
result += (int)(temp/10) * bit+ n%bit+1;
}
temp/=10;
bit*=10;
}
return result;
}
}
- Python
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1Between1AndN_Solution(self, n):
result = 0
temp=n
bit=1
if temp==0:
return 0
if temp<10:
return 1
while temp>=1:
if temp%10<1:
result += int(temp/10) * bit
elif temp%10>1:
result += (int(temp/10)+1) * bit
else:
result += int(temp/10) * bit + n%bit+1
temp/=10
bit*=10
return result