求奇数和

 

本题要求计算给定的一系列正整数中奇数的和。

输入格式:

输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。

输出格式:

在一行中输出正整数序列中奇数的和。

输入样例:

8 7 4 3 70 5 6 101 -1
 

输出样例:

116

 1 #include<stdio.h>
 2 void sum(void)
 3 {
 4     int n = 0;
 5     int sumn = 0;
 6     while(1)
 7     {
 8         scanf("%d",&n);
 9         if(n <= 0)
10         {
11           break;    
12         }
13         else if(n % 2 != 0)
14         {
15             sumn += n;
16         }
17     }
18     printf("%d",sumn);
19 }
20 int main(void)
21 {
22     sum();
23     return 0;
24 }

 最大公约数和最小公倍数

本题要求两个给定正整数的最大公约数和最小公倍数。

输入格式:

输入在一行中给出两个正整数M和N(1000)。

输出格式:

在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。

输入样例:

511 292
 

输出样例:

73 2044

 1 #include<stdio.h>
 2 int pub(int* m,int* n)
 3 {    
 4     int s,r;
 5     s = *m;
 6     r = *n;
 7     if(0<=*m<=1000 && 0<=*n<=1000)
 8     {
 9         if(*n>*m)
10         {
11             int temp = *m;
12             *m = *n;
13             *n = temp;
14         }
15         while(1)
16         {
17             int k = *m % *n;
18             if(k == 0)
19             {
20                 int u = s*r / (*n);
21                 printf("%d %d",*n,u);
22                 break;
23             }
24             else
25             {
26                 *m = *n;
27                 *n = k;
28             }
29         }
30     }
31     else 
32     {
33         return 0;
34     }
35 }
36 int main(void)
37 {
38     int m,n;
39     scanf("%d %d",&m,&n);
40     pub(&m,&n);
41     return 0;
42 }

 

 统计素数并求和
 

本题要求统计给定整数M和N区间内素数的个数并对它们求和。

输入格式:

输入在一行中给出两个正整数M和N(1MN500)。

输出格式:

在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

输入样例:

10 31
 

输出样例:

7 143
 
 1 #include <stdio.h>
 2 int pn(int* m,int* n)
 3 {
 4     int i = 0;
 5     int j = 0;
 6     int u = 1;
 7     if(*m>*n|| *n>500 || *m<1)
 8     {
 9         return 0;
10     }
11     else if(*m < *n)
12     {
13         while(*m < *n)
14         {
15             for(int k =2; k<*m; k++)
16             {
17                 if(*m % k == 0)
18                 {
19                     (*m)++;
20                     u = 0;
21                     break;
22                 }
23                 else
24                 {
25                     u = 1;
26                 }
27             }
28             if(u == 1)
29             {
30                 i++;
31                 j= j + *m;
32                 (*m)++;
33                 /*实际上是因为*m++,是对m储存的值(也*m就是指向值的地址进行了修改,改变了指针指向) 
34                 而不是对*m指向的地址所储存的值进行修改,
35                 而(*m)++才是 对*m指向的地址所储存的值进行修改 
36                 所有原来我用的*m++*/
37             }
38             if(*m>*n)
39             {
40             i++;
41             j=j+*m;
42             printf("%d %d",i,j);
43             }
44         }        
45     }
46     else if(*m == *n)
47     {
48         int u = 0;
49         for(int k =2; k<*m; k++)
50             {
51                 if(*m % k == 0)
52                 {
53                     u = 0;
54                     break;
55                 }
56                 else
57                 {
58                     u = 1;
59                 }
60             }
61         if(u == 1)
62         {
63             printf("1 %d",*m);
64         }
65         else if(u == 0)
66         {
67            printf("0 0");
68         }
69     }
70     return 0;
71 }
72 int main(void)
73 {
74     int m,n;
75     scanf("%d %d",&m,&n);
76     pn(&m,&n);
77     return 0;
78 }

 

 

 1 #include <stdio.h>
 2 
 3 int is_prime(int num) // 判断是否是素数的函数
 4 {
 5     if (num <= 1) {
 6         return 0;
 7     }
 8     for (int i = 2; i * i <= num; i++) {
 9         if (num % i == 0) {
10             return 0;
11         }
12     }
13     return 1;
14 }
15 
16 int count_sum_prime(int m, int n) // 统计素数个数并求和的函数
17 {
18     int count = 0;
19     int sum = 0;
20     for (int i = m; i <= n; i++) {
21         if (is_prime(i)) {
22             count++;
23             sum += i;
24         }
25     }
26     printf("%d %d", count, sum);
27     return 0;
28 }
29 
30 int main(void)
31 {
32     int m, n;
33     scanf("%d %d", &m, &n);
34     if (m < 1 || n > 500 || m > n) {
35         printf("Invalid input\n");
36         return 0;
37     }
38     count_sum_prime(m, n);
39     return 0;
40 }

猴子吃桃问题

 

一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?

输入格式:

输入在一行中给出正整数N(1<N10)。

输出格式:

在一行中输出第一天共摘了多少个桃子。

输入样例:

3
 

输出样例:

10
 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int n, i, sum = 1;
 6     scanf("%d", &n);
 7     if(n <= 1 || n > 10)
 8     {
 9         return 0;
10     }
11     for (i = 1; i < n; i++)
12     {
13         sum = (sum + 1) * 2;
14     }
15     printf("%d\n", sum);
16     return 0;
17 }

 

 

据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。

输入格式:

输入第一行给出一个正整数N≤ 20)。随后N行,每行给出两个整数,分别是一个人的身高H(120 < H < 200;单位:厘米)和真实体重W(50 < W ≤ 300;单位:市斤),其间以空格分隔。

输出格式:

为每个人输出一行结论:如果是完美身材,输出You are wan mei!;如果太胖了,输出You are tai pang le!;否则输出You are tai shou le!

输入样例:

3
169 136
150 81
178 155
 

输出样例:

You are wan mei!
You are tai shou le!
You are tai pang le!
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 void kilo(int n)
 4 {
 5     int i = 1;
 6     int h,w;
 7     float h1,w1;
 8     while(i<=n)
 9     {
10         scanf("%d %d",&h,&w);
11         if(h > 120 && h < 200)
12         {
13             h1 = (h-100)*0.9;
14             //printf("%f\n",h1);//45
15         }
16         else 
17         {
18            continue;
19         }
20         if(w > 50 && w <= 300)
21         {
22             w1 = w/2.0;
23             //printf("%f\n",w1);//40.5
24         }
25         else 
26         {
27             continue;
28         }
29         if((w1-h1)>0 && (w1-h1) >= (0.1 * h1))
30         {
31             printf("You are tai pang le!\n");
32         }
33         else if((w1-h1) < 0 && (h1-w1) >= (0.1 * h1))
34         {
35             printf("You are tai shou le!\n");
36         }
37         else
38         {
39             
40             //printf("%f %f %f\n",w1-h1,h1-w1,0.1 * h1);
41             printf("You are wan mei!\n");
42         }
43         i++;
44     }
45 }
46 int main(void)
47 {
48     int n =0;
49     scanf("%d",&n);
50     if(n < 0 || n > 20)
51     {
52         return 0;
53     }
54     kilo(n);
55     return 0;
56 }

 

 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int main()
 5 {
 6     int N; // 输入的人数
 7     int H, W; // 身高和体重
 8     double standard, error; // 标准体重和误差
 9     scanf("%d", &N); // 读入人数
10     for (int i = 0; i < N; i++) // 对每个人进行判断
11     {
12         scanf("%d %d", &H, &W); // 读入身高和体重
13         standard = (H - 100) * 0.9 * 2; // 计算标准体重,单位为市斤
14         error = fabs(W - standard); // 计算误差,取绝对值
15         if (error < standard * 0.1) // 如果误差小于标准体重的10%
16         {
17             printf("You are wan mei!\n"); // 输出完美身材
18         }
19         else if (W > standard) // 如果体重大于标准体重
20         {
21             printf("You are tai pang le!\n"); // 输出太胖了
22         }
23         else // 如果体重小于标准体重
24         {
25             printf("You are tai shou le!\n"); // 输出太瘦了
26         }
27     }
28     return 0;
29 }

 

 
 
 
posted on 2023-04-10 21:06  在野武将  阅读(20)  评论(0编辑  收藏  举报