- 博客(17)
- 收藏
- 关注
原创 hdu1196解题报告
思路:位运算编程语言:C语言代码如下:#includeint main(){ int A, t; while (scanf("%d", &A), A) { t = 1; while (A) { if (A % 2 == 1)break; A /= 2; t *= 2; } printf("%d\n", t);
2014-01-19 19:31:49
462
原创 hdu1157解题报告
思路:题目的意思就是求中位数。编程语言:C语言代码如下:#includevoid qsort(int *a, int l, int r){ int x = a[l]; int i = l, j = r; if (l >= r) return; while (i { while (i= x) j--; a[i] = a[j]; while (
2014-01-19 19:19:30
639
原创 POJ1401解题报告
思路: 这一题要求的是N!中末尾0的个数,其实也就是所包含因子10的个数。10=5*2,因子10的个数也就是因子2的个数与因子5的个数中较小的那个,N!=1*2*3...*N,其中2的因子个数一定不少于5的因子个数,所以要求的其实就是N!中所包含的5的因子个数。 求 P^x || N!,这个算法在集训手册推荐的那本《初等数论》上64页有证明,其中x的值是1--N之中所有p的倍数的个数
2014-01-19 19:09:12
856
原创 hdu1084解题报告
思路:结构体排序题编程语言:C语言代码如下:#includestruct Test{ int p; int id; int h; int m; int s; int score;};int main(){ struct Test test[100]; int n; while (scanf("%d", &n) && n >= 0) {
2014-01-19 19:00:11
534
原创 hdu1032解题报告
思路:题的大意是输入两个数(注意,这里没有说第一个数一定要小于第二个数),然后对这两个数之间的所有整数包括端点的数,进行一种规律运算,并求出运算的次数,比较所有的数规律运算次数,输出最大的编程语言:C语言代码如下:#includevoid main(){ __int64 n, m, i, temp; while (scanf("%I64d%I64d", &n, &m)
2014-01-19 17:44:39
626
原创 POJ2080解题报告
思路:星期几很容易求,只要对7求模就知道,不过2000年1月1日是星期六,星期几的字符数组第一个要注意。至于年月日,就是用昨天数减去每一年的天数,减多少年year就是多少,month也一样,最后天数要加1.编程语言:C语言代码如下:#include int fn(int x){ if ((x % 4 == 0 && x % 100 != 0) || x % 400 ==
2014-01-19 17:32:07
535
原创 POJ1555解题报告
思路:方法很笨,一项一项判断,但有一点需要注意那就是输出的时候的第一项,虽然题目说'+'和'-'前后都有空格,但若第一个字符为负的时候,'-'的前后是没有空格的.编程语言:C语言代码如下:#include int fn(int x){ if ((x % 4 == 0 && x % 100 != 0) || x % 400 == 0) return 1; retur
2014-01-19 17:19:51
691
原创 poj3080解题报告
思路:先按字符串的长度由短到长进行快排。枚举第一个字符串的不同长度子串,判断她是否为下面多有的公共子串?如果是的话,那么我们就表明找到,则比较其长度,如果比已经找到的串长,那么就替换结果串 否则按字典序比较。取字典序考前的,就可以。编程语言:C++错误:曾因数组越界WA了2次,现已改正代码如下:#include#include#includeusing namespac
2014-01-19 17:01:04
465
原创 hdu1128解题报告
思路:由于该题是求一个数是不是“自身数”,而定义一个数是不是“自身数”的根据就是是否有祖先,又因为一个数的祖先一定比这个数要小,所以这就和筛选法很像了。编程语言:C语言代码如下:#include int sum(int n){ int s = n; while (n) { s += n % 10; n /= 10; } return s;}
2014-01-19 16:30:07
475
原创 hdu2006解题报告
思路:应用判断 循环等语句即可编程语言:C语言代码:#include int main(void){ int n, i, s, t; while (scanf("%d", &n) != EOF) { for (s = 1, i = 0 ; i n ; i++) { scan
2014-01-18 22:29:05
466
原创 hdu2005解题报告
思路:判断N是否为闰年的方法是:N能4整数但不能被100整除 或者 N能被400整除算出第N年的每个月的天数后就从一月开始累加,不要忘了最后要加天数哦。^_^编程语言:C语言代码如下:#include #include #define lev(n) (n % 4 == 0 && (n % 100 != 0 || n % 400 == 0))int main(void)
2014-01-18 22:22:41
502
原创 hdu2004解题报告
思路:switch case break编程语言:c语言当时由于马虎,犯了输出错误,现已改正代码如下:#include #include int main(void){ int r;while (scanf("%d", &r) != EOF) { if (r 0) puts("Score is error!
2014-01-18 22:12:21
427
原创 hdu2003解题报告
思路:调用绝对值函数编程语言:C语言代码如下:#include #include int main(void){ double r; while (scanf("%lf", &r) != EOF) printf("%.2lf\n", fabs(r)); return 0;}
2014-01-18 22:06:11
390
原创 hdu2002解题报告
思路:球体的体积公式:V = 4пr3/3编程语言:C语言代码如下:#include #include #define PI 3.1415927int main(void){ double r; while (scanf("%lf", &r) != EOF) printf("%.3lf\n", 4.0*PI*r*r*r/3.0)
2014-01-18 22:02:07
427
原创 hdu2001解题报告
思路:勾股定理语言:C语言代码如下:#include#includemain(){ double a,b,c,d,s; while(scanf("%lf %lf %lf %lf",&a,&b,&c,&d)!=EOF) { s=sqrt((a-c)*(a-c)+(b-d)*(b-d)); printf("%.2lf
2014-01-18 21:42:49
437
原创 hdu2000解题报告
思路 思路:要让三个数从小到大排,顺序就是:比较1,2两个数。如果第一个数比第二数大,把这两个数交换,来保证前面两个数按升序排列。 比较2,3两个数。如果第二个数比第三数大,把这两个数交换,来保证后面两个数按升序排列。 经过上面两步,最大的数已经被移到最后。再重复一次第一步。保证三个数都是按升序来排列。 虽然你也可以用排序算法对它进行排
2014-01-18 21:31:16
480
原创 hdu1002解题报告
思路:大数相加问题,不可以直接进行加法运算 又这个数的位数不超过1000位 因此可以考虑运用数组将加法的计算结果的每位数进行存储 。编程语言:C语言代码如下:#include #include int main(){ char a[1000],b[1000]; int n,i,j,l1,l2,max; scanf("%d",&n); j=0;
2014-01-18 21:24:41
783
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人