zoukankan      html  css  js  c++  java
  • C 语言学习 3

    【程序3】
    题目:一个整数,它加上100后是一个全然平方数。再加上168又是一个全然平方数。请问该数是多少?
    1.程序分析:在10万以内推断。先将该数加上100后再开方,再将该数加上268后再开方,假设开方后的结果满足例如以下条件,即是结果。请看详细分析:
    2.程序源码:

    #include "math.h"
    #include "stdio.h"
    #include "conio.h"
    main()
    {
      long int i,x,y,z;
      for (i=1;i<100000;i++)
      {
        x=sqrt(i+100); /*x为加上100后开方后的结果*/
        y=sqrt(i+268); /*y为再加上168后开方后的结果*/
        if(x*x==i+100&&y*y==i+268) /*假设一个数的平方根的平方等于该数,这说明此数是全然平方数*/
        printf("
    %ld
    ",i);
      }
      getch();
    }

    这个函数中调用了 sqrt 函数,它在 math.h 文件里,我第一次调用这个函数出错,但不是由于我使用的错误,而是程序中的 x、y、z 參数的类型设错了。应该设 long int,它是有符号的,并且应该是 long 型的,否则有可能会溢出。

    至于函数中为什么要推断小于 100000,这个真不知道,标记一下。或者谁知道,给个答案。

    这里面还有个思维方式的问题。假设你想用开根号函数来做此题,不是不能够,不过只在參数的类型上就非常麻烦。假设不用开根号而是用平方来推断,结果是一样的,可是会简单非常多。


  • 相关阅读:
    static关键字(C语言)
    PartitionerTest
    PipelineTest
    ReadDataFromCheckpoint
    Demo1
    CacheTest
    CheckPointTest
    BroadCast
    AccumulatorOperator
    Operator_takeAndFirst
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6814678.html
Copyright © 2011-2022 走看看