来源:蜘蛛抓取(WebSpider)
时间:2017-07-05 01:44
标签:
dim s as string
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(*^__^*)
||||点击排行