hdu2011 多项式求和
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include<cstdio> #include<iostream> using namespace std; int main() { int m,n; double sum=0.0,f=1.0; scanf("%d",&m); while(m--) { scanf("%d",&n); sum=0.0,f=1.0; for(int i=1;i<=n;i++) { sum+=f/i; f=-1.0*f; } printf("%.2f\n",sum); } return 0; }
|
hud2012 素数判定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include<stdio.h> #include<iostream> #include<cmath> using namespace std; int cal(int a) { return a*a+a+41; } int su(int b) { for(int i=2;i<=(int)sqrt(b);i++) { if(b%i==0) return 0; } return 1; } int main() { int x,y,flag=1; while(scanf("%d%d",&x,&y)&&(x||y)) { flag=1; for(int i=x;i<=y;i++) if(su(cal(i))==0) flag=0; if(flag==1) printf("OK\n"); else printf("Sorry\n"); } return 0; }
|
hdu2013 蟠桃记
这是一道非常经典的OI明星题,原名是《猴子吃桃》,我在2008年初二的时候第一次接触这道题目,也是因为这一道题爱上了算法。这道题目是非常经典的循环题,类似的题目还有《王小二切大饼》、《母牛问题》等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include<cstdio> #include<iostream> using namespace std; int main() { int n,sum=0; while(scanf("%d",&n)!=EOF) { sum=1; for(int i=1;i<n;i++) { sum=2*(sum+1); } printf("%d\n",sum); } return 0; }
|
hdu2014 青年歌手大赛_评委会打分
这是一道日常生活中常见的题目,唯一需要注意的就是在使用sort()函数时,需要排序的范围,这里还请大家思考一下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #define N 110 using namespace std; int li[N]; int main() { int n; double p; while(scanf("%d",&n)!=EOF) { p=0.0; memset(li,0,sizeof(li)); for(int i=1;i<=n;i++) { scanf("%d",&li[i]); } sort(li+1,li+n+1); for(int i=2;i<n;i++) { p+=li[i]; } printf("%.2f\n",p/(n-2)); } return 0; }
|
hdu2015 偶数求和
这道题算是这几道里面比较麻烦的了,开始想的可能比较复杂,取第几项加几什么的很烦。但是后来发现,按照题目的意思直接去计算可能比较简单。
首先,我们的思路是算出每组数的第一个数2+(m2)\i,然后向后求和,去平均值。最后要判断一下最后一组是否完全,不全的话则需要除以n%m求平均值。
除此之外,还有输出的循环控制,最后一个元素的后面没有空格。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #include<cstdio> #include<iostream> using namespace std; int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { int sum=0,a=2,flag=0,i; for(i=1;i<=n;i++) { sum+=a; a+=2; if(i%m==0) { flag++; if(flag!=1) printf(" "); printf("%d",sum/m); sum=0; } } if(n%m==0) printf("\n"); else printf(" %d\n",sum/(n%m)); } return 0; }
|
hdu2016 数据的交换输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #include<cstdio> #include<iostream> using namespace std; int main() { int n,a[110],mi; while(scanf("%d",&n)&&n) { mi=1; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); if(a[i]<a[mi]) { mi=i; } } int t; t=a[mi]; a[mi]=a[1]; a[1]=t; printf("%d",a[1]); for(int i=2;i<=n;i++) { printf(" %d",a[i]); } printf("\n"); } return 0; }
|
hdu2017 字符串统计
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #include<cstdio> #include<iostream> using namespace std; int main() { int n,sum; scanf("%d",&n); getchar(); while(n--) { char s; int sum=0; while((s=getchar())!='\n') { if(s>=48&&s<=57) sum++; } printf("%d\n",sum); } return 0; }
|
hdu2018 母牛的故事
这是一道简单的动态规划问题,这类问题的其他内容我们将在后来的教程中着重讨论。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #include<cstdio> #include<iostream> using namespace std; int func(int y) { if(y<4) return y; else return func(y-3)+func(y-1); } int main() { int n; while(scanf("%d",&n)&&n) { printf("%d\n",func(n)); } return 0; }
|
hdu2019 数列有序!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #include<cstdio> #include<iostream> #include<cstring> #define N 110 int a[N]; using namespace std; int main() { int n,m,ji=0; while(scanf("%d%d",&n,&m)&&(n||m)) { memset(a,0,sizeof(a)); ji=1; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } for(int i=1;i<=n;i++) { if(a[i]>=m) { ji=i; break; } } for(int i=n+1;i>ji;i--) { a[i]=a[i-1]; } a[ji]=m; printf("%d",a[1]); for(int i=2;i<=n+1;i++) { printf(" %d",a[i]); } printf("\n"); } return 0; }
|
hdu2020 绝对值排序
`C++
最后更新时间:
梦想依在 人生正当年