每天进步一点点 【编程技巧】(不定期更新)
来源:互联网 发布:黑客盗号软件2016 编辑:程序博客网 时间:2024/05/29 16:35
最我们写代码时总会遇到复杂的程序,这些程序写起来思路很简单,但是代码却很多,所以在编程时总有一些技巧。(坚持每天AC 慢慢提高自己的编程能力)
(1).
水仙花数求 百位、十位、个位的方法:
for (i = m; i < n; i++) //m 为数的下限,n为数的上线,用该方法可求某一段区间内的水仙花数。
{
a = i / 100; //a 为这个数的百位;
b = i % 100 / 10; // b 为这个数的十位;
c = i % 10; //c 为这个数的个位;
if (i == a*a*a + b*b*b + c*c*c)
{
printf("%d\n", i);
d++;
}
}
改进后的代码;
int sum = 0;
int n;
n = m;
while (n) //用while循环可以一步一步的算出个位、十位、百位。
{
sum += (n % 10)*(n % 10)*(n % 10);
n /= 10;
}
return sum == m;
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(2)
强制转换类型(以1/3=0.3333为例);
方法一:printf("%lf",1.0/3.0);
方法二:int a,b;
float c;
scanf(“%d%d”,&a,&b);
c=(float)a/(float)b; // a与b本是整形 但是(float)把它强制转换为浮点型;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(3)
在早期CPU处理的功能还不够强的时候,求X对于2^n的余数,可能不直接用%来运算。而是换成位运算。 X & (2^N - 1)。
比如求 N 余 8,写成 n & 7。
这样写可读性比较差。而且现在的机器性能提升了,一般的编译器也能自动转换这种优化。所以这种写法现在不推荐。仅做了解(当然如果你想炫耀一番自己的才华,那另当别论)。
方法1:
for(i=0;i<10;i++) //从键盘输入10个数输出奇数;
{
if(n/2==1)
{
printf("%d",n);
}
}
方法二:
for(i=0;i<10;i++)
{
if(n&1)
{
printf("%d",n);
}
}
- 每天进步一点点 【编程技巧】(不定期更新)
- 【每天进步一点点】 项目管理(2)
- 【每天进步一点点】 项目管理(3)
- 每天进步一点点之算法(一)
- 每天进步一点点之算法(二)
- 每天进步一点点
- 每天进步一点点
- 每天进步一点点
- 每天进步一点点
- 每天进步一点点
- 每天进步一点点
- 每天进步一点点
- 每天进步一点点
- 每天进步一点点
- 每天进步一点点
- 每天进步一点点
- 每天进步一点点!
- 每天进步一点点~~~
- C语言 用顺序表实现电话本的功能
- ios——1
- 什么是angular
- NYOJ 139 我排第几个(康托展开)
- R语言处理缺失数据的高级方法
- 每天进步一点点 【编程技巧】(不定期更新)
- ***6.21-豆机 梅花瓶 高尔顿瓶
- Bought SONY Sports MP3 Player NWZ-WS615
- 构造方法
- linux(ubuntu15.04)桌面右上角网络图标和输入法图标消失解决办法
- HDU 5501:The Highest Mark 01背包
- 【五校联考6day2】san
- Intellij添加项目依赖解决方法
- 软件功能测试概论(课堂练习1)