zoukankan      html  css  js  c++  java
  • C语言成长学习题(九)

    三十六、输出所有两位素数,要求一行输出15个素数。

     1 #include <stdio.h>
     2 #include <math.h>
     3 
     4 void main(void)
     5 {
     6     int a, i, end, n = 0;
     7     
     8     for (a = 10; a <= 99; a++)
     9     {
    10         end = sqrt(a);
    11         for (i = 2; i <= end; i++)
    12             if (a % i == 0) break;
    13         if ( i > end)
    14         {
    15             printf("%4d", a);
    16             n++;
    17             if (n % 15 == 0)
    18                 printf("
    ");
    19         }
    20     }
    21     printf("
    ");
    22 }

     结果:

    11  13  17  19  23  29  31  37  41  43  49  53  59  61  67

    71  73  79  83  89  97

    三十七、打印1000以内所有“水仙花数”(abc = a3 + b3 + c3)。

     1 #include <stdio.h>
     2 
     3 void main(void)
     4 {
     5     int a, b, c, x;
     6     
     7     printf("1000以内所有的水仙花数是: ");
     8     for (x = 100; x <= 999; x++)
     9     {
    10         a = x / 100;
    11         b = x / 10 - a * 10;
    12         c = x % 10;
    13         if (x == a * a *a + b * b * b + c * c * c)
    14             printf("%5d", x);
    15     }
    16     printf("
    ");
    17 }

    结果:

    1000以内所有的水仙花数是:153 370 371 407

    三十八、猴子吃桃子问题。猴子第1天摘下若干个桃子,猴子当天吃了一半后又再吃1个,从第2天起猴子每天都是吃了前一天剩下的一半多1个桃子。到第10天猴子想吃桃子的时候发现只剩下1个桃子,请计算猴子第1天共摘了多少个桃子。

     1 #include <stdio.h>
     2 
     3 void main(void)
     4 {
     5     int day, n1, n2;
     6     
     7     for (day = 10, n2 = 1; day >=1; day--)
     8     {
     9         n1 = (n2 + 1) * 2;
    10         n2 = n1;
    11     }
    12     printf("第一天摘的桃子总数为: %d
    ", n1);
    13 }

    结果:

    第一天摘的桃子总数为: 3070

    三十九、编写程序,求s=a+aa+aaa+...+aaaa..aaa(n个a)的值。

     1 #include <stdio.h>
     2 
     3 void main(void)
     4 {
     5     int n, i;
     6     long a, s = 0, t = 0;
     7 
     8     printf("Input value of a and n: ");
     9     scanf("%ld%d", &a, &n);
    10     for (i = 1; i <= n; i++)
    11     {
    12         t = t + a;
    13         s = s + t;
    14         a = a * 10;
    15     }
    16     printf("%ld +%ld%ld+%d%ld%ld+... = %ld
    ", a, a, a, a, a, a, s);
    17 }

     结果:

    Input value of a and n: 3 6

    3+33+333+... = 370368

    四十、编写程序,从键盘输入两个正整数分别存放在a和b中,用”辗转相除法“求它们的最大公约数。

     1 #include <stdio.h>
     2 
     3 void main(void)
     4 {
     5     int a, b, r;
     6 
     7     printf("请输入正整数a和b的值: ");
     8     scanf("%d%d", &a, &b);
     9     if (a < b)
    10     {
    11         r = a;
    12         a = b;
    13         b = r;
    14     }
    15     r = a % b;
    16     while (r != 0)
    17     {
    18         a = b;
    19         b = r;
    20         r = a % b;
    21     }
    22     printf("a和b的最大公约数: %d
    ", b);
    23 }
  • 相关阅读:
    《Effective Java》读书笔记
    《Effective Java》读书笔记
    《Effective Java》读书笔记
    使用 @Log4j2 log.error() 打印异常日志
    获取min-max之间的随机数
    跨域问题(CORS / Access-Control-Allow-Origin)
    SnowFlakeId 分布式雪花id算法
    订单入库后异步推送
    查看git HEAD
    Java Http POST/GET 情求
  • 原文地址:https://www.cnblogs.com/zero-jh/p/5024862.html
Copyright © 2011-2022 走看看