计算string.format s s=“1+2+3+4+5”的值

09:21 提问
计算1^1+2^2+3^3+4^4+5^5+……+20^20 ,不使用BigDecimal。
计算1^1+2^2+3^3+4^4+5^5+……+20^20 ,不使用BigDecimal,不使用math.pow用数组和移位运算。
要求如上,很简单是不是!!!
本宝宝跨专业选了java的课,底子有点弱。
老师布置的作业里就这一条实在是没有思路惹~~~因为星期天就要交呜呜
他大概说了用数组,然后乘法运算,比如19^19=19*19*19*19...... 依次计算往前进一位?
求大神指点!
好像是按这个里面的方法。
按赞数排序
数组乘法我就不知道了,但是这个本方法应该可以
public class aaa {
public static double tot(int s){
double n=1;
switch (s) {
n=s*s*s*s;
n=s*s*s*s*s;
n=s*s*s*s*s*s;
n=s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s;
n=s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s*s;
public static double sumtot(int ss){
double sum=0;
for (int i = 1; i &= i++) {
double s=tot(i);
*【对方法功能进行描述说明】
【参数1 说明】
【参数2 说明】
【返回值】
【版本号】
*@createTime【时间】
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(sumtot(20));
public void run() {
double rst = a(10);
System.out.println(rst);
public double a(int n){
double rst = 0;
for(int i=0; i&n; i++){
rst += m(i+1);
public double m(int a){
double rst =
for(int i=0; i&a-1; i++){
使用了数组和移位运算,不过移位是写死的,不知道有没有根据一个数解析出二进制位的通用方法,代码如下:
public static Long getWyLong(){
Long maxLong = 0L;
int [] arr = new int[20];
for(int i=1;i&=20;i++){
arr[i-1] =
for(int j=0;j&arr.j++){
Long val = 0L;
Long base = 0L;
if(arr[j] != 1){
String rule = getRule(arr[j]);
String [] rules = rule.split("\\|");
for(int t = 1;t&arr[j];t++){
Long temp = base ==0 ? (long)arr[j] :
for(int i=0 ;i &rules.i++){
switch(Integer.parseInt(rules[i])){
val += temp && Integer.parseInt(rules[i]);
maxLong += 1;
maxLong +=
return maxL
public static String getRule(int val){
String rule = "";
switch(val){
rule = "0";
rule = "1";
rule = "1|0";
rule = "2";
rule = "2|0";
rule = "2|1";
rule = "2|1|0";
rule = "3";
rule = "3|0";
rule = "3|1";
rule = "3|1|0";
rule = "3|2";
rule = "3|2|0";
rule = "3|2|1";
rule = "3|2|1|0";
rule = "4";
rule = "4|0";
rule = "4|1";
rule = "4|1|0";
rule = "4|2";
default:rule = "0";
计算出来的结果是:7431088,为毛网上查到的是024
int num[20];
int sum=0;
for(int i=0;i<20;i++){
int N=i+1;
muliti=i+1;
if(N%2==1)
sum+=num[i];
num[i]存储的是(i+1)的(i+1)次幂,最后求出sum
应该是用快速幂运算吧,降低了时间复杂度,而且用到移位
由于计算的数据比较大,long型都不够,所以用了double,一般这种大数题目应该都是要取模的。
public class Sum {
public static void main(String[] args){
double[] num = new double[20];
double muliti,sum=0;
for(int i=0;i&20;i++){
muliti=i+1;
while(N&0){
if(N%2==1)
sum+=num[i];
System.out.println(sum);
public class Sum {
public static void main(String[] args){
double sum,subSum = 1;
for(int j = 0; j & 20;j++){
for(int k = 0; k &= k++){
subSum = subSum *(J + 1);
sum = sum + subS
System.out.println(sum);
其他相似问题用JAVA语言计算1+2+3+4+5+....+100=?_编程 - QQ志乐园
您的当前位置: &
用JAVA语言计算1+2+3+4+5+....+100=?
来源: |人气:320 ℃|时间: 11:29:34
为了解决用户可能碰到关于"用JAVA语言计算1+2+3+4+5+....+100=?"相关的问题,志乐园经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联系。"用JAVA语言计算1+2+3+4+5+....+100=?"相关的详细问题如下:
写完答案在帮我解释一下程序..谢谢public class sum //定义一个类
{
	public static void main(String[] args)
	{
		int i,j=0; //定义两个变量
		for(i=1;i&=100;i++) //使用FOR语句循环
		{
			j=j+i;	 //将值累加
		}
		System.out.println(j); //输出结果
	}
}&瞬间*记忆&int all=0; //定义个总合
for(int i=1i&101;i++) //循环增加
{
all=all+i; //增加一个加一次
}恋丄自由class sum{
 public static void main(String args[])
 {
 int i,s=0;
 for (i=1;i&=100;i++)
 s+=i;
 System.out.println(&sum=&+s);
 }
}Sunny(*^__^*)public class LeiJia{
	public static void main(String[] args){
		int sum=0; 
	for(i=0;i&=100;i++){ 
		sum+=i;			//累加器
	}
	System.out.println(sum);
	}
}Better Mani,s=0;/*初始化程序的值,i是循环控制变量*/
s+=i;/*累加器*/Sunny(*^__^*)
||||点击排行

我要回帖

更多关于 dim s as string 的文章

 

随机推荐