hdu 2018(母牛问题)2019(数列有序!)2020(绝对值排序 )2021(发工资)2022(海选女主角)

要发现它的规律,题n年牛的总数等于n-1年的母牛数加上第n年新增的母牛数,第n年只有n-3年的那些母牛才能产母牛,所以第n年的母牛数等于第n-1和n-3年的母牛数的和,即sum(n)=sum(n-1)+sum(n-3),可用递归来做

 1 #include<cstdio>
 2 #include<cmath>
 3 #include<string.h>
 4 #include<iostream>
 5 #include<algorithm>
 6 using namespace std;
 7
 8 int  zongshu(int n)
 9 {
10     if(n>0&&n<5)
11         return n;
12     else
13     {
14         return zongshu(n-1)+zongshu(n-3);
15     }
16 }
17
18 int main()
19 {
20    int n;
21    int sum;
22     while(scanf("%d",&n)!=EOF)
23     {
24        if(n==0)
25        {
26            break;
27        }
28        sum=zongshu(n);
29        printf("%d\n",sum);
30     }
31     return 0;
32 }

hdu 2019

没做出来

 1 #include<cstdio>
 2 #include<cmath>
 3 #include<string.h>
 4 #include<iostream>
 5 #include<algorithm>
 6 using namespace std;
 7
 8 int main()
 9 {
10    int n,m,j;
11    int a[110];
12     while(scanf("%d%d",&n,&m)!=EOF)
13     {
14        if(n==0&&m==0)
15        {
16            break;
17        }
18        for(int i=0;i<n;i++)
19        {
20             scanf("%d",&a[i]);
21        }
22         for(int i=0;i<n;i++)
23         {
24              if(m<=a[i])
25              {
26                 j=i;
27                 break;
28              }
29         }
30          for(int i=n;i>j;i--)//关键处
31              a[i]=a[i-1];
32         a[j]=m;
33           printf("%d",a[0]);
34           for(int i=1;i<=n;i++)
35                  printf(" %d",a[i]);
36         printf("\n");
37     }
38     return 0;
39 }

hdu 2020:

 1 #include<cstdio>
 2 #include<math.h>
 3 #include<string.h>
 4 #include<iostream>
 5 #include<algorithm>
 6 using namespace std;
 7
 8 int main()
 9 {
10    int n,m,j,t;
11    int a[110];
12     while(scanf("%d",&n)!=EOF)
13     {
14        if(n==0)
15        {
16            break;
17        }
18        for(int i=0;i<n;i++)
19        {
20             scanf("%d",&a[i]);
21        }
22        for(int i=0;i<n;i++)
23        {
24            for(j=i;j<n;j++)//关键
25            {
26                if(abs(a[i])<abs(a[j]))//关键
27                {
28                    t=a[i];
29                    a[i]=a[j];
30                    a[j]=t;
31                }
32            }
33        }
34
35         printf("%d",a[0]);
36        for(int i=1;i<n;i++)
37        {
38             printf(" %d",a[i]);
39        }
40        printf("\n");
41     }
42     return 0;
43 }

hdu 2021:

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int  n,m;
 6     while(cin >> n)
 7     {
 8         if(n==0)
 9             break;
10         int aount =0;
11         for(int i=0; i < n;++i)
12         {
13             cin >> m;
14             aount+=m/100;
15             m%=100;
16             aount+=m/50;
17             m%=50;
18             aount+=m/10;
19             m%=10;
20             aount+=m/5;
21             m%=5;
22             aount+=m/2;
23             m%=2;
24             aount+=m;
25
26         }
27         cout<<aount<<endl;
28     }
29     return 0;
30 } 

hdu 2022

 1 #include<stdio.h>
 2 #include<math.h>
 3 #include<string.h>
 4
 5
 6 int main()
 7 {
 8    int n,m,t;
 9    int a;
10    int minn,col,row;
11    int x,y,s;
12     while(scanf("%d%d",&n,&m)!=EOF)
13     {
14         minn=0;
15        for(int i=1;i<=n;i++)
16        {
17            for(int j=1;j<=m;j++)//关键
18            {
19               scanf("%d",&a);//如果用数组做不出来,尝试直接用
20               if(fabs(a)>fabs(minn))//不知道为什么这里用abs就不行(遇到问题多试试)
21               {
22                  minn=a;
23                   col=i;
24                   row=j;
25               }
26            }
27        }
28         printf("%d %d %d\n",col,row,minn);
29     }
30     return 0;
31 }
时间: 2024-10-14 14:55:42

hdu 2018(母牛问题)2019(数列有序!)2020(绝对值排序 )2021(发工资)2022(海选女主角)的相关文章

hdu 2022 海选女主角

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2022 题目大意:找出绝对值最大的数,并输出行和列~ 1 #include<stdio.h> 2 #include<math.h> 3 int main(void) 4 { 5 int m,n,i,j; 6 int x,y,s,a,row,max; 7 while(scanf("%d %d",&m,&n)!=EOF) 8 { 9 max=0; 10 s

hdu 2022海选女主角

海选女主角 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 41253    Accepted Submission(s): 18528 Problem Description potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业余时间挣点外快以养家糊口. "做什么比较挣钱呢?筛沙子没力气,看大门又不够帅..."

hdu 2022 海选女主角 (java)

问题: 在处理最大值时没有注意到负值的情况被后来的正值所代替,例如当最大值为-7时,直接将-7赋给max,这时max=-7就会被后面的2所取代,因为2>-7,在另设置存最大值的值后就行了,当出现错误时可以采取一个个带到程序中运算来排查错误. 当不需连续输出一组数时应优先考怒不用数组,这样可以减少一个输入的for循环. 海选女主角 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

杭电 2019 数列有序!

http://acm.hdu.edu.cn/showproblem.php?pid=2019 数列有序! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 44844    Accepted Submission(s): 19451 Problem Description 有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给

hdu 2020 绝对值排序

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2020 题目大意:按照绝对值大小从大到小排序,注意输出两个数之间要用空格隔开,在这里引入一个冒泡排序,两个循环即可! 1 #include <stdio.h> 2 #include <math.h> 3 int main () 4 { 5 int n,a[100],i,j,t; 6 while (scanf("%d",&n),n) 7 { 8 for (i=0

hdu 2021 发工资咯:)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2021 题目大意:给老师发工资,找出最少的人民币张数. 1 #include <stdio.h> 2 int main () 3 { 4 int a,n,i,sum; 5 while (scanf("%d",&n),n) 6 { 7 sum=0; 8 for (i=1; i<=n; i++) 9 { 10 scanf ("%d",&a);

HDU 2019 数列有序!

Time Limit: 1000 MS Memory Limit: 32768 KB 64-bit integer IO format: %I64d , %I64u   Java class name: Main [Submit] [Status] [Discuss] Description 有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序. Input 输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是

hdu 2019 数列有序!

这是去年用来训练编码能力的一道水题,最近学了链表就重新写了一下这题,对指针不熟悉唉,指来指去,人都晕了 #include<iostream> #include<malloc.h> using namespace std; struct stu { int vaule; stu* next; }; int main() { int n,m; while(cin>>n>>m&&n&&m) { stu *root=(stu*)mal

Hdu 2018母牛的故事

母牛的故事 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 83526    Accepted Submission(s): 41487 Problem Description 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? Input 输入数据由多个测试