习题 2-1 位数 2-2 水仙花数 2-3 韩信点兵 2-4倒三角形 2-6 调和级数 2-7近似计算 2-8 子序列的和

2-1 位数

#include<stdio.h>
#include<math.h>
int main ()
{
    int n;
    for (n=100; n<=999; n++)
    {
        if(n == pow(n/100,3) + pow(n/10%10,3) + pow(n%10,3) )
             printf("%d\n",n);
    }

    system("PAUSE");
    return EXIT_SUCCESS;
}

2-2 水仙花数

#include<stdio.h>
#include<math.h>
#include <cstdlib>

int main ()
{
    int n;
    for (n=100; n<=999; n++)
    {
        if(n == pow(n/100,3) + pow(n/10%10,3) + pow(n%10,3) )
             printf("%d\n",n); 

    }

    system("PAUSE");
    return EXIT_SUCCESS;
}

2-3 韩信点兵

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    int n;
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    for (n = 10; n<=100; n++)
    {
        if (n%3 == a && n%5 == b && n%7 == c)
           {
                printf("%d\n",n);
                break;
           }

    }
    if (n == 101) printf("No answer\n");

    system("PAUSE");
    return EXIT_SUCCESS;
}

2-4 倒三角形

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int n;
  int i, j, k;
  scanf("%d", &n);
  for( i = 1; i <= n; i++)
      {
          for ( k=1; k <= i-1; k++)
              printf(" ");
          for ( j=i; j <= 2*n-i; j++)
          {
               printf("#");
          }
          printf("\n");
      }
  system("PAUSE");
  return 0;
}

总结:printf((j<i || j > m-1-i) ? " " : "#"); 用这句来进行判断输出空格还是#,简单多了

2-6 调和级数

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int n;
  double sum = 0;
  scanf("%d",&n);

  int i;
  for(i=1; i<=n; i++)
  {
     sum += 1.0/i;
  }

  printf("%.3lf\n", sum);
  system("PAUSE");
  return 0;
}

2-7 近似计算

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
  int i, j;
  double sum = 0;
  for( i = 1, j = 0; 1.0/i >= 1.0/pow(10,6); i += 2)
  {
     sum += (1.0/i)*pow(-1,j);

     j++;
  }

  sum += (1.0/i)*pow(-1,j);
  printf("%d\n", i);
  printf("%.6lf\n", 4*sum);
  system("PAUSE");
  return 0;
}

总结: 可以用sign = -sign,来进行正负号的转换

2-8 子序列的和

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
  int n, m;
  scanf("%d %d", &n, &m);
  double sum = 0.0;
  int i;

  for( i = n; i <= m; i++)
  {
     sum += 1.0/i/i;
  }

  printf("%.5lf\n", sum);
  system("PAUSE");
  return 0;
}

总结:仍然是怕溢出,1.0/i/i

时间: 2024-08-23 21:39:19

习题 2-1 位数 2-2 水仙花数 2-3 韩信点兵 2-4倒三角形 2-6 调和级数 2-7近似计算 2-8 子序列的和的相关文章

python中3位数中的水仙花数,和5位数中回文数的个数

3位数中的水仙花数打印num=100 e=0while num<1000: b=num%10 c=num//10%10 d=num//100 if b**3+c**3+d**3==num: e+=1 print (num) num+=1print (e) 5位数中的回文数的个数 num=10000e=0while num<=99999: a=num//10000 b=num//1000%10 c=num%100//10 d=num%10 if a==d and b==c: e+=1 print

Java杂谈之二----怎样判断一个数是水仙花数以及穷举水仙花数

首先明确一下什么是水仙花数 百度说,水仙花数指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身 例如:1^3+5^3+3^3=153 水仙花数只是自幂数的一种,严格来说三位数的3次幂数才能成为水仙花数. 但其实也分一位自幂数,两位自幂数,三位自幂数,四位自幂数等等. 所以鉴于水仙花数的定义的不确定和模糊性 以下代码示例不仅限于三位数的水仙花数,主要涉及的是思想问题. 类名:JavaNarcissus 构造函数:JavaNarcissus() 判断一个数是否为水仙花数:IsNarc

打印出所有的&quot;水仙花数&quot;,所谓&quot;水仙花数&quot;是指一个三位数,其各位数字立方和等于该数本身。

package com.mumu.ready; public class Daffodils { // 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身. // 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. public static void main(String[] args) { for (int i = 100; i < 1000; i++) { in

打印出所有&quot;水仙花数&quot;,所谓&quot;水仙花数&quot;是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。

题目描述 打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身. 例如:153是一个水仙花数,因为153=1^3+5^3+3^3. Output: 153 ??? ??? ??? 输入 无 输出 所有的水仙花数,从小的开始. 每行一个 样例输入 无 样例输出 无 程序:#include<stdio.h>int main(){    int i,a,b,c;    for(i=100;i<1000;i++)    {  

求100---999之间的所有水仙花数,并输出。提示:水仙花数是一个3位数的自然数,该数各位数的立方和等于该数本身

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 例如:153=1^3+5^3+3^3,所以153为水仙花数 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int

JS 1000以内的水仙花数 (三位数 各个数字的立方和等于本身 例如 1*1*1 + 5*5*5 + 7*7*7 = 157)

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> </html> <script type="text/javascript"> for(i=100;i<1000;i++){ var a = par

习题5-6 使用函数输出水仙花数(20 分)

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身.例如:153=1?3??+5?3??+3?3??. 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数. 函数接口定义: int narcissistic( int number ); void PrintN( int m, int n ); 函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0. 函数PrintN则打印开区

打印出三位数的水仙花数Python

水仙花数计算 ???????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????? 1.题目描述 “3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身.例如:ABC是一

C语言程序设计100例之(4):水仙花数

例4    水仙花数 题目描述 一个三位整数(100-999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33),找出所有的这种数. 输入格式 没有输入 输出格式 若干行,每行1个数字. 输入样例 无 输出样例 153 * * * ... * * * (输出被和谐了) (1)编程思路1. 对三位数n(n为100~999之间的整数)进行穷举.对每个枚举的n,分解出其百位a(a=n/100).十位b(b=n/10%10)和个位c( c=n%10),若满足a*a*a+