7编程维持第7天:统计int类型中0的个数
//思路:
步骤1:统计数的位数
步骤2:统计0的个数
//统计int类型中0的个数
#include<iostream>
#include<math.h>
using namespace std;
int NumOf1(int num)
{
int count=0;
if(num==0)
count=1;
//步骤1:统计数的位数
for(int i=9;i>=0;i--)
{
int tmp = pow(10,i);
if(num/tmp!=0)
{
count=i+1;
break;
}
}
//步骤2:统计0的个数
int count0=0;
for(int j=1;j<=count;j++)
{
if(num%10==0)
count0++;
num/=10;
}
return count0;
}
int main()
{
int num=-102030;
cout<<NumOf1(num)<<endl;
}
7编程维持第7天:数组的整数次方(剑指OFFER面试题16)
//思路:
要判断各种情况下的程序的鲁棒性,这个是这道题的关键
//数组的整数次方
#include<iostream>
using namespace std;
double PowerCore(double base,int exponent)
{
double result=1.0;
for(int i=1;i<=exponent;i++)
{
result*=base;
}
return result;
}
double Power(double base,int exponent)
{
int flag=0;
//步骤1:先对所有特殊情况进行判断
if(base==0.0 && exponent<=0)//这种情况没有意义
return 0;
if(exponent==0)
return 1;
//步骤2:对指数小于0的进行判断
if(exponent<0)
{
flag=1;
exponent=-exponent;
}
//步骤3:
double result = PowerCore(base,exponent);
if(flag==1)
{
result= 1/result;
}
return result;
}
int main()
{
double result =Power(0,5);
cout<<result<<endl;
}