编程计算1^1+2^2+3^3+4^4+5^5+……+20^20

Posted Pistachiout

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程计算1^1+2^2+3^3+4^4+5^5+……+20^20相关的知识,希望对你有一定的参考价值。

1.用对分法解方程 x^(1/2)=cos(x) (x>0)

a、先在纸上研究好算法
b、使用Math.sqrt(), Math.cos(),Math.PI;
c、实型数的比较方法(不能用相等,要用差的绝对值很小作为判断)
d、大致的结果区间
e、怎么结束,常量(到怎样的精度则停止循环计算)(Math.abs())
f、取中值
g、例子:-1.3*X+2=sinX

ublic static void main(String[] args) {
		// TODO Auto-generated method stub
			double minNum=0d,maxNum=1d,xNumber=0.5d,sqrt,cos,absSubstractiveSum=1d;
			for(;absSubstractiveSum>0.0000001;)
				{sqrt=Math.sqrt(xNumber);
				 cos=Math.cos(xNumber);
				 absSubstractiveSum=(double)Math.abs(sqrt-cos);
				 if(sqrt-cos<0)
				 	{minNum=xNumber;
				 	xNumber=(minNum+maxNum)/2;}
				 else
				 	{maxNum=xNumber;
				 	xNumber=(minNum+maxNum)/2;}
				}
			System.out.println(xNumber);
			
}
}

在这里插入图片描述

2. 用欧几里德辗转相除法求两个正整数的最大公约数

在这里插入图片描述

public class Ogimed {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a=52,b=4;
		System.out.println(getGCD(a,b));
	}
		static int getGCD(int a,int b) {
		if(a%b==0)
			 return b;
		return getGCD(b,a%b);
		}
}

3.利用级数展开式计算cos(x)

a、注意循环控制的设计(结束条件)
b、反复查找了源程序,没有问题,但运行的结果就是不对,试着从其他方面找原因
c、可以和Math.cos()的结果做一个比较
d、不用数组。到网上找通项公式;
e、结束条件,常量
在这里插入图片描述

public class CosX {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int x=0;
		System.out.println(cos(x));
	}
	public static double cos(double x)
	{
		double sumOfItem=1;
		double item=x;
		double EPSILON=0.0000000000000001;
		int num=1;
		while(Math.abs(item)>EPSILON)
		{	item=-item*x*x/((2*num)*(2*num-1));
			sumOfItem+=item;
			num++;
		}
		return sumOfItem;
}
}

4. 编程计算1000以内的质数(输出格式:一行10个,按列右对齐)

a、注意设计好“信号变量”,isPrime
b、Switch((Integer.toString(intWorker)).length())
c、如何按列右对齐
5. 将任意一个字符串颠倒排列输出
a、引用正确的类及其方法
b、主要是合理运用String或StringBuffer的方法以及循环控制
c、学习使用length()、charAt()等函数
d、研究各种可能的情况
在这里插入图片描述


public class primeNumInside1000 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i,j;
		int num=0;
		for(i=1;i<=1000;i++)
		{
			for(j=2;j<i;j++)
			{
				if(i%j==0)
					break;
			}
			if(i==j)
				{String str=Integer.toString(j);
				System.out.printf("%4s",str);
				num++;};
			if(num==10)
				{num=0;
				System.out.println();
				}
}
}

5.将任意一个字符串颠倒排列输出

a、引用正确的类及其方法
b、主要是合理运用String或StringBuffer的方法以及循环控制
c、学习使用length()、charAt()等函数
d、研究各种可能的情况
在这里插入图片描述

public class reverseString {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StringBuffer str=new StringBuffer("anihC yadhtriB yppaH");
		StringBuffer str2=new StringBuffer("");
		int length=str.length();
		for(int number=length;number>0;number--)
		{	char temp=str.charAt(number-1);
			str2.append(temp);
		}
		System.out.println(str2);
}
}

6. 符号三角形(输入--+-++-+)(第一行从第10列开始,整个三角形右对齐)

a、想办法控制好输出的格式
b、什么是符号三角形
c、如何控制起始位置
d、字符的比较,是否可以考虑用异或
在这里插入图片描述



public class symbolicTriangle {


	public static void main(String[] args) {
		// TODO Auto-generated method stub
			char[] line=new char[]{' ',' ',' ',' ',' ',' ',' ',' ',' ','-','-','+','-','+','+','-','+'};
			 System.out.println(line);
			for(int i=9;line[15]!=' ';i++)
			  { for(int j=16;j!=i;j--)
			      {int flag = line[j]^line[j-1];
			       if(flag==0)
			        {line[j]='+';}
			       else
			        {line[j]='-';}
			      }
				 line[i]=' ';
				 System.out.println(line);
			  }		

	}
}

7、编程计算11+22+33+44+55+……+2020

b、注意结果的大小,体会数据的范围;
c、需要用到数组;
d、-----------------------------------
e、不能在运算过程中使用实型数
f、使用数组,一个数组元素装一位
g、要使用辅助方法。
在这里插入图片描述


public class PowersumForm1to20 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		sumOf20Power20();
	}
	public static void sumOf20Power20()
	{
		int[] sum=new int[50];
		int[] temp;
		sum[0]=5;
		
		for(int i=3;i<=20;i++)
		{
			temp=nPowerN(i);
			addToSum(temp,sum);
			display(sum);
		}
	}
	public static void carry(int[] anArray)
	{
		for(int i=0;i<anArray.length-1;i++)
		{
			anArray[i+1]+=anArray[i]/10;
			anArray[i]%=10;
		}
	}
	public static void addToSum(int[] anArray,int[] sumArray)
	{
		for(int i=0;i<sumArray.length;i++)
		{
			sumArray[i]+=anArray[i];
		}
		carry(sumArray);
	}
	public static int[] nPowerN(int aNumber)
	{
		int[] tempArray=new int[50];
		tempArray[0]=aNumber;
		carry(tempArray);
		for(int i=0;i<aNumber-1;i++)
		{
			for(int j=0;j<tempArray.length;j++)
				tempArray[j]*=aNumber;
			carry(tempArray);
		}
		return tempArray;
	}
	public static void display(int[] anArray)
	{
		boolean isAllPrefixZero=true;
		for(int i=anArray.length-1;i>=0;i--)
		{
			if(anArray[i]!=0)
				isAllPrefixZero=false;		
			if(!isAllPrefixZero)
				System.out.print(anArray[i]);
				
		}
		System.out.println();
	}

}

以上是关于编程计算1^1+2^2+3^3+4^4+5^5+……+20^20的主要内容,如果未能解决你的问题,请参考以下文章

面试题_程序编写题_编程实现表达式1-2+3-4+5-6+….+n的计算结果_一列数的规则如下: 112358132134...... 求第30位数是多少_小明去商店买糖, 店主说糖是

有如下数列:1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,..计算并输出前1000项的和 要求:使用?

C 语言学习笔记:编程基础

C 语言学习笔记:编程基础

用python实现计算1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))类似的公式计算

python求0+1-2+3-4+5-....+N的计算结果的编写代码