编程小技巧
时间:2022-04-22
本文章向大家介绍编程小技巧,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.判断一个自然数是否是某个数的平方?(其实就是判断这个数一定是奇数相加的)
由于 (n+1)^2 =n^2 + 2n + 1, = ... = 1 + (2*1 + 1) + (2*2 + 1) + ... + (2*n + 1) 注意到这些项构成了等差数列(每项之间相差2)。 所以我们可以比较 N-1, N - 1 - 3, N - 1 - 3 - 5 ... 和0的关系。 如果大于0,则继续减;如果等于0,则成功退出;如果小于 0,则失败退出。 复杂度为O(n^0.5)。不过方法3中利用加减法替换掉了方法1中的乘法,所以速度会更快些。
例如:3^2 = 9 = 1 + 2*1+1 + 2*2+1 = 1 + 3 + 5
4^2 = 16 = 1 + 2*1 + 1 + 2*2+1 + 2*3+1
int square(int n)
{
int i = 1;
n = n - i;
while( n > 0 )
{
i += 2;
n -= i;
}
if( n == 0 ) //是某个数的平方
return 1;
else //不是某个数的平方
return 0;
}
2.如何判断一个元素的奇偶性?
//判断元素的奇偶性
bool isEven(int data)
{
return((data & 1) == 0 ? true : false);
}
if((exponent & 0x1) == 1) //判断是否为奇数
3.判断一字符串是否是对称的。
bool IsSymmetrical(char *pBegin , char *pEnd)
{
if(pBegin == NULL || pEnd == NULL || pBegin > pEnd)
return false;
while(pBegin < pEnd)
{
if(*pBegin != *pEnd)
return false;
pBegin++;
pEnd--;
}
return true;
}
4.输入一个整数n,求从1到n这个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。
int NumberOf1(unsigned int n)
{
int number = 0;
while(n)
{
if(n % 10 == 1)
number++;
n = n / 10;
}
return number;
}
int NumberOf1Between1AndN(unsigned int n)
{
int number = 0;
for(unsigned int i = 1 ; i <= n ; ++i)
number += NumberOf1(i);
//cout<<number<<endl;
return number;
}
实现代码:
#include<iostream>
using namespace std;
int NumberOf1(unsigned int n)
{
int number = 0;
while(n)
{
if(n % 10 == 1)
number++;
n = n / 10;
}
return number;
}
void NumberOf1Between1AndN(unsigned int n)
{
int number = 0;
for(unsigned int i = 1 ; i <= n ; ++i)
number += NumberOf1(i);
cout<<number<<endl;
}
int main()
{
int n = 12;
NumberOf1Between1AndN( n);
return 0;
}
5.判断一个数是否是素数。
bool isPrime(int n)
{
for(int i = 2 ; i <= sqrt(n) ; i++)
{
if(n % i == 0)
return false;
}
return true;
}
- Python编程任务 | 斯坦福CS231n-深度学习与计算机视觉课程
- ofbiz实体引擎(二) delegator实例化具体方式
- ofbiz实体引擎(一) 获取Delegator
- 12个非常实用的JavaScript小技巧
- 关于PHP浮点数精度损失问题
- FreeMarker与JSP 2.0 + JSTL组合进行比较
- 从零开始学设计模式(1):基础编程模式
- 机器学习实战 | 第四章:模型验证和选择
- ofbiz中FreeMarkerWorker的makeConfiguration方法
- 后台进程(守护进程)自动备份PostgreSQL数据库
- 了解这些PHP小技巧吗?
- 结构体字节对齐
- 在Atom中设置Python开发环境
- Assignment 3 (神经网络) | 斯坦福CS231n-深度学习与计算机视觉课程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法