编程实现求2的零次方加2的一次方一直加到2的十次方的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程实现求2的零次方加2的一次方一直加到2的十次方的值相关的知识,希望对你有一定的参考价值。

#include<stdio.h>

#include<math.h>

void main()

 int i,n,sum=0;

 printf("please input n:");

 scanf("%d",&n);

 for(i=0;i<=n;i++)

 

  sum+=pow(2,i);

 

 printf("sum=%d\\n",sum);


 

#include<stdio.h>

#include<math.h>

void main()

 int i=0,n,sum=0;

 printf("please input n:");

 scanf("%d",&n);

 while (i<=n)

  sum+=pow(2,i);

    i++;

 

 printf("sum=%d\\n",sum);


参考技术A c#前提。
普通算法:
double result = 0;
for (int i = 0; i < 11; i++) result += Math.Pow(2, i);

高级算法:
int result2 = 0;
for (int i = 0; i < 11; i++) result2 += 1 << i;

运算结果是2047。高级算法的理解:由于底数刚好是2,从二进制01出发,2的n次幂 = 1<<n。这种算法的效率稍高些。追问

如果用while语句来编写,又该怎么写这个程序?

追答

int res = 0;
int start = 0;
while (start <= 10)

res += 1 << start;
start++;

本回答被提问者采纳
参考技术B matlab编程:
a=zeros(11,1);
a(1)=1;
for i=1:10
a(i+1)=2^i;
end
sum(a)

x 的 x 次方等于10,求 x

当 x 的 x 次方为10时,求 x 的值,精确到小数位后9位

过程如下:

2 的 2 次方 小于 10;

3 的 3 次方 大于 10;

因此 x 在 2 到 3 之间。

找出整数部分后,需要计算出小数部分,然后把两部分加到一个串里即可(可以以串的形式输出,也可以转成浮点数输出,下面的程序是以串的形式输出的)。

用试探法来做,过程如下:

小数点后第一位,从 0 开始,加在整数部分后面组成一个新数 y,如果 y 的 y 次方小于 10,把 0 去掉,加上 1,......

  依次往下加,直到 y 的 y 次方大于 10,即可确定 x 的小数部分的第一位为当前数字的前一位。

  例如:

  2.1 的 2.1 次方 小于 10;

  2.2 的 2.2 次方 小于 10;

  ……

  2.5 的 2.5 次方 小于 10;

  2.6 的 2.6 次方 大于 10;

  因此,小数第一位是 5,当前 x 为 2.5……。

同理,即可求出小数部分的第 2 到 9 位。

程序如下:

//2017.03.16  by 迷糊狐狸
public class Test {
    static String s = "";
        
    static String f(double d){
        for(int i=1; i<d; i++){
            if(Math.pow(i, i)>=d){
                s = f(9, i-1, d);
                break;
            }
        }
        s = s.charAt(0) + "." + s.substring(1);
        return s;
    }
    
    static String f(int k, int n, double p){
        s = s + n;
        if(k<=0)return s;
        String s1 = s.charAt(0) + "." + s.substring(1);
        String s2 = "";
        for(int i=1; i<=10; i++){
            double d = Double.parseDouble(s1 + i);
            if(Math.pow(d, d)>p){
                s2 = f(k-1, i-1, p);
                s = n + f(k-1, i-1, p);
                break;
            }
        }
        s = s2;
        return s;
    }

    public static void main(String[] args) {
        String s = f(10);
        System.out.println(s);
        double d = Double.parseDouble(s);
        System.out.println(Math.pow(d, d));
    }

}

 该程序的后一个输出为检验第一个结果所用。

输出结果如下:

技术分享

 

以上是关于编程实现求2的零次方加2的一次方一直加到2的十次方的值的主要内容,如果未能解决你的问题,请参考以下文章

x 的 x 次方等于10,求 x

2的n次方怎么编程

用python程序求2的0次方到63次方

如何用C语言实现2的n次方

多项式二的六次方加二的三次方加二的零次方的二进制数怎么表示?

用python程序求2的0次方到63次方