zoukankan      html  css  js  c++  java
  • 例30:尼科彻斯定理

    尼科彻斯定理简单来想其实可以是这样,我们假设有一个数N,则他的立方为N*N*N,可以看成为N个N*N在相加,此时若N为奇数,那么则有从N*N-(N-1)/2*2,即为N*N-N+1开始到N*N+N-1为止的奇数相加的值,同样,若为偶数可得出相应的结论从N*N-1-(N/2-1)*2,即为N*N-N+1到N*N+N-1为止。

    这和书上的不太一样,但书上的用的好像是穷举的方法,这样算的话,应该比书上的方法要快得多了。明白了这个道理,那么直接开始编程就可以了。

    代码如下:

     1 #include<stdio.h> 
     2 #include<stdlib.h>
     3 
     4 void Test(int n)
     5 {
     6     int t,startNumber;
     7     if(n%2 == 0)
     8     {
     9         t = n/2-1;
    10         startNumber = n*n-1-t*2;
    11     }
    12     else
    13     {
    14         t = n/2;
    15         startNumber = n*n - t*2;
    16     }
    17     printf("%d*%d*%d = %d = %d ",n,n,n,n*n*n,startNumber);
    18     for(int i = 1;i<n;i++)
    19     printf("+ %d",startNumber+i*2);
    20 }
    21 
    22 int main()
    23 {
    24     int n;
    25     while(~scanf("%d",&n) && n)
    26     {
    27         Test(n);
    28     }
    29     return 0;
    30 }
  • 相关阅读:
    小小的疑问和小小的想法
    为什么你的代码不能给别人看?
    linux之中对文件名和文件进行编码转换
    数据泵导入导出步骤
    杭电acm1266
    杭电acm2097
    杭电acm2019
    杭电acm1395(转自牛人代码)
    杭电acm1279
    杭电acm1412
  • 原文地址:https://www.cnblogs.com/FWFC/p/6337707.html
Copyright © 2011-2022 走看看