算法 - 初体验
计算 1 + 2 + ... + 99 + 100
算法一:
#include <stdio.h>
#include <string.h>
int main( )
{
int i,sum = 0,n =100;
for (i = 1;i<=n;i++) {
sum = sum + i;
}
printf("%d",sum);
return 0;
}
条件改大一些,
#include <stdio.h>
#include <string.h>
int main( )
{
int i,sum = 0,n =100000000000;
for (i = 1;i<=n;i++) {
sum = sum + i;
}
printf("%d",sum);
return 0;
}
2103145472
Process returned 0 (0x0) execution time : 4.061 s
Press any key to continue.
执行了4秒钟。
算法二:
#include <stdio.h>
#include <string.h>
int main( )
{
int i,sum = 0,n =100;
sum = (1 + n) * (n/2);
printf("%d",sum);
return 0;
}
改大一些,
#include <stdio.h>
#include <string.h>
int main( )
{
int i,sum = 0,n =100000000000;
sum = (1 + n) * (n /2);
printf("%d",sum);
return 0;
}
2103145472
Process returned 0 (0x0) execution time : 0.206 s
Press any key to continue.
执行0.2秒。
点评: 算法二更加高效。
算法就是你泡妞的技巧和策略,有的朋友技术高,三下五除二就拿下。
对于给定的问题,可以有多种解决的算法。
掌握经典算法,加以灵活运用,产生新的算法。