摘要: 求12个月工资的平均数。这个题的难度和1001差不多吧 1 #include <iostream> 2 using namespace std; 3 4 5 int main() 6 { 7 int n=12; 8 float sum=0.0; 9 float a;10 while(n--)11 {12 cin>>a;13 sum+=a;14 }15 cout<<"$"<<sum/12<<endl;16 17 18 return 0;19 } 阅读全文
posted @ 2011-05-31 17:02 andyidea 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 题意还是比较容易理解的,题上已经给出了公式。求1/2+1/3+1/4+...+1/(n+1)>=x的最小n的值,稍微注意点的就是浮点型了,貌似很多人都WA过,都是错在浮点数的。。代码实现#include <iostream>using namespace std;int main(){ float f; while(cin>>f,f) { float n=2.0; float sum=0.0; while(1) { sum+=1.0/n; if(sum>=f) break; n+=1.0; } cout<<(int)n-1<<&quo 阅读全文
posted @ 2011-05-31 11:21 andyidea 阅读(304) 评论(0) 推荐(1) 编辑
摘要: 1. C++虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C++和C是兄弟关系。没有谁比谁先进的说法,更重要的一点是C和C++各自的标准委员会是独立的,最新的C++标准是C++03,最新的C标准是C99。因此也没有先学C再说C++的说法,也不再(注意这个"不再")有C++语法是C语法的超集的说法。 2. C++/CLI 和 C# 是微软的,它们与C和C++没有任何关系,虽然部分语法相似。但哪两种语言不相似呢?都是abc这26个字母。 3. 不要使用TC/TC++/BC/CB等古老的编译器来学习C/C++,因为它们太古老了,不支持新的C/C++标 阅读全文
posted @ 2011-04-19 08:39 andyidea 阅读(426) 评论(2) 推荐(1) 编辑
摘要: 程序书写过程中的一些小技巧:1.freopen(“1.txt”,”r”,stdin); //程序运行后系统自动输入此文档里面的内容(不需要进行手动输入)freopen(“1.txt”,”w”,stdout); //程序输出的内容保存在此文件里2.memset(a,0,sizeof(a)); //数组的初始化。一般定义一个数组都要初始化数组定义int a[10] 为全局变量的话,其全部元素默认赋值为0;整型数据默认为0,字符串默认为空。3.#define max 0x0ffffff; //max 为正无穷#define min -0x0ffffff;4.多组测试数据使用 while(n--){ 阅读全文
posted @ 2011-04-18 18:50 andyidea 阅读(1850) 评论(2) 推荐(0) 编辑
摘要: 移位实现的乘除法比直接乘除的效率高很多。用移位实现乘除法运算 a=a*4; b=b/4; 可以改为: a=a<<2; b=b>>2; 说明: 除2 = 右移1位 乘2 = 左移1位 除4 = 右移2位 乘4 = 左移2位 除8 = 右移3位 乘8 = 左移3位 ... ... 通常如果需要乘以或除以2的n次方,都可以用移位的方法代替。 大部分的C编译器,用移位的方法得到代码比调用乘除法子程序生成的代码效率高。 实际上,只要是乘以或除以一个整数,均可以用移位的方法得到结果,如: a=a*9 分析a*9可以拆分成a*(8+1)即a*8+a*1, 因此可以改为: a=(a&l 阅读全文
posted @ 2011-04-16 13:23 andyidea 阅读(1343) 评论(1) 推荐(1) 编辑
摘要: 输入:动物个数n以及k句话,接着输入k行,每一行形式为:d x y, 在输入时可以先判断题目所说的条件2和3,即: 1>若(x>n||y>n):即当前的话中x或y比n大,则假话数目num加1. 2>若(x==2&&x==y):即当前的话表示x吃x,则假话数目num加1. 而不属于这两种情况外的话语要利用并查集进行判断当前的话是否与此前已经说过的话相冲突. struct node { int parent; //p[i].parent表示节点i的父节点 int relation; //p[i].relation表示节点i与其父节点(即p[i].parent 阅读全文
posted @ 2011-04-14 08:41 andyidea 阅读(505) 评论(0) 推荐(1) 编辑
摘要: 给定两个数m,n求m!分解质因数后因子n的个数。这道题涉及到了大数问题,如果相乘直接求的话会超出数据类型的范围。下面给出一种效率比较高的算法,我们一步一步来。m!=1*2*3*……*(m-2)*(m-1)*m可以表示成所有和n倍数有关的乘积再乘以其他和n没有关系的 =(n*2n*3n*......*kn)*ohter other是不含n因子的数的乘积因为 kn<=m而k肯定是最大值 所以k=m/n =n^k*(1*2*......*k)*other =n^k*k!*other 从这个表达式中可以提取出k个n,然后按照相同的方法循环下去可以求出k!中因子n的个数。每次求出n的个数的和就是m 阅读全文
posted @ 2011-04-12 11:01 andyidea 阅读(1155) 评论(2) 推荐(2) 编辑
摘要: 大家好,我是C小加,致力于算法和C++,希望能交到更多朋友。这篇文章是对我的一个简介。 阅读全文
posted @ 2011-04-10 21:30 andyidea 阅读(692) 评论(4) 推荐(2) 编辑