首页 > 试题广场 >

百万富翁问题

[编程题]百万富翁问题
  • 热度指数:9392 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你10 万元,你第一天给我1 分钱,第二天2 分钱,
第三天4 分钱……
这样交换 30 天后,百万富翁交出了多少钱?陌生人交出了多少钱?(注意一个是万元,一个是分)

输入描述:
该题没有输入


输出描述:
输出两个整数,分别代表百万富翁交出的钱和陌生人交出的钱,富翁交出的钱以万元作单位,陌生人交出的钱以分作单位。
import java.lang.Math;
public class Main{
    public static void main(String[] args){
        long sumRich=0;
        long sumStranger=0;
        for(int i=1;i<=30;i++){
            sumRich+=10;
            sumStranger=sumStranger+(long)Math.pow(2,i-1);
        }
        System.out.print(sumRich+" "+sumStranger);
    }
}

发表于 2018-08-03 02:32:46 回复(0)
/*一个百万富翁遇到了一个陌生人,陌生人找他谈了一个换钱计划。该计划如下:
我每天给你10万元,你第一天给我一分,第二天给我两分,第三天给我三分。。。。。
这样交换30天。虽然百万富翁感觉赚了,但是赚这一百万使他有一种不详的感觉,
于是他花了一百万找了“哈尔滨工业大学计算机系”的一个学生帮他算了一下,
发现还赚200w+,于是她就同意了。*/
#include<iostream>
#include<cstring>
#define N 201
using namespace std;
int main()
    {
    int i = 1;int sum = 0;int sum1 = 0;
    for(int j= 1;j<=30;j++)
    {
     sum1+=100000;
     sum+=i;
     i*=2;
 }
 cout<<sum1<<" "<<sum<<endl;
 return 0;
}
//之后他和那位河南**大学的穷人平分了那1000w+,并幸福的生活在一起。

编辑于 2017-04-30 15:39:31 回复(3)
#include<stdio.h>
int main()
{
    double fuwong=10*30,t=0.01,sum;
    for(int i=1;i<=30;i++)
        sum+=t*pow(2,i-1);
    printf("%.0lf %.0lf",fuwong,sum*100);
}

发表于 2020-04-08 14:39:38 回复(0)
#include <iostream>
using namespace std;
int main(){
    cout << 300 << " " << 1073741823;
    return 0;
}

发表于 2020-04-06 18:11:13 回复(2)
#include<bits/stdc++.h>
int main(){
    printf("%d %.0f\n",10*30,pow(2,30)-1);
}//题目读不明白
编辑于 2019-03-19 11:17:58 回复(0)
#include <stdio.h>
int main(){
    int sum=0;
    int j=1;
    for(int i=0;i<30;i++){
        sum+=j;
        j=j*2;
    }
    printf("%d %d",300,sum);
    return 0;
}

发表于 2019-02-01 21:21:33 回复(0)

import java.util.Scanner;
public class Main{
public static void main(String args[]){
System.out.print(10*30+" "); System.out.println((int)Math.pow(2,30)-1);
}
}

编辑于 2018-07-19 15:39:38 回复(0)
#include<stdio.h>
#include<math.h>
int main()
{
    int rich,poor=0;
    rich=10*30;
    for(int i=0;i<30;++i)
    {
        poor+=pow(2,i);
    }
    printf("%d %d",rich,poor);
    return 0;
}
发表于 2018-03-18 21:21:15 回复(0)
#include<stdio.h>
int main (){//the shorter,the better.
    printf("300 1073741823\n");
}

发表于 2018-01-14 16:10:12 回复(0)
print("300 1073741823")

python solution....

发表于 2017-10-01 10:33:05 回复(1)
print 10 * 30, (1 << 30) - 1

发表于 2016-12-26 21:43:33 回复(1)
为什么第三天4分钱...?
发表于 2019-11-25 17:27:10 回复(3)
import java.util.Scanner;
import java.math.*;
public class Main {
    public static void main(String[] args) {
        System.out.println(30*10+" "+BigInteger.valueOf(2).pow(30).subtract(new BigInteger("1")).toString());

    }
}
编辑于 2024-03-21 17:07:14 回复(0)
print(300, (1 << 30) - 1)

发表于 2024-02-02 12:36:56 回复(0)
#include <cstdio>

int main(){
    printf("300 ");
    int m = 1;
    int sum = 0;
    for(int i = 0; i < 30 ; ++i){
        sum += m;
        m = m*2;
    }
    printf("%d",sum);
    return 0;
}

发表于 2023-03-10 16:02:59 回复(0)
#include<bits/stdc++.h>
using namespace std;
int main(){
    int a;
    int b = 1;
    int sum = 1;
    a = 10*30;
    for(int i=1;i<=29;i++){
        b *= 2;
        sum += b;
    }
    cout<<a<<" "<<sum;

    return 0;
}
发表于 2023-02-27 11:36:40 回复(0)
#include <iostream>
using namespace std;

int main() {
    cout << 10*30 << " ";
    int sum = 0;
    int score = 1;
    for (int i = 0; i < 30; i++) {
        sum += score;
        score <<= 1;
    }
    cout << sum << endl;
}
// 64 位输出请用 printf("%lld")

发表于 2023-02-10 13:27:55 回复(0)
这个例子告诉我们百万富翁都是***,不要相信他们的鬼话[doge]
#include<iostream>
#include<cmath>
using namespace std;
int main(){
    cout << 300 << " " << -(1 - (int)pow(2, 30)) << endl;     
}


发表于 2022-05-16 22:02:25 回复(0)
# include <iostream>
# include <cmath>

using namespace std;

int main()
{
    //百万富翁交出:
    int sum=0;
    for(int i=0;i<30;i++)
    {
        sum+=pow(2,i);
    
     cout<<10*30<<" "<<sum<<endl;
    return 0;
 } 
发表于 2022-02-18 16:01:11 回复(0)
//每天  2的n次方   分 
public class Main {
    public static void main(String[] args) {
        int give = 10 * 30;
        int day = 30;
        int sum = 0;
        for (int i = 0; i < 30; i++) {
            sum = sum + (int)Math.pow(2,i);
        }
        System.out.println(give + " " + sum);
    }
}


发表于 2021-02-07 11:03:29 回复(0)

问题信息

难度:
48条回答 12488浏览

热门推荐

通过挑战的用户

查看代码
百万富翁问题