| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1345 人关注过本帖
标题:拿金币 输出为啥为啥一直为0求助大佬
只看楼主 加入收藏
七月与安生鉴
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2021-5-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
拿金币 输出为啥为啥一直为0求助大佬
有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币。

输入格式

  第一行输入一个正整数n。
  以下n行描述该方格。金币数保证是不超过1000的正整数。

输出格式

  最多能拿金币数量。
————————————————
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
    int n;//正方形边长
    cin >> n;
    int a[100][100];
    for (int i = 0; i <n; i++){
        for (int j = 0; j <n; j++){
            cin >> a[i][j];
        }
    }
    for (int i = 0; i < n; i++)
        for (int j = 0; j <=n; j++)
        {
        if (a[i][j + 1] > a[i + 1][j]){
            a[i][j] += a[i][j + 1];
            i = i;
            j = j + 1;
        }
        else
            a[i][j] += a[i + 1][j];
        i = i + 1;
        j = j;
        }
    int add = 0;
    for (int i = 0; i < n; i++){
        if (a[i][n]>add)
            add = a[i][n];
    }
    cout << add << endl;
    system("pause");
}
搜索更多相关主题的帖子: 格子 for int 输出 金币 
2022-01-26 16:39
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:20 
a. 题目不完整,没说N的最大值是多少。你的代码中有个100,但我不知道这个100是题目交代的,还是你臆测的
b. 因为N不知道,那金币总和的最大值也就不知道,无法选择金币总和的类型
c. 缺少“输入输出样例”,无法判断代码是否正确
d. 你的代码未排版,无法阅读

我从网上找了一个完整的题目,但我无法保证这道网上找到的题目是否与你的题目一致,仅供参考
问题描述
  有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币。
输入格式
  第一行输入一个正整数n。
  以下n行描述该方格。金币数保证是不超过1000的正整数。
输出格式
  最多能拿金币数量。
样例输入
3
1 3 3
2 2 2
3 1 2
样例输出
11
数据规模和约定
  n<=1000


程序代码:
#include <cstdio>

int main( void )
{
    size_t n;
    scanf( "%zu", &n );

    unsigned* p = new unsigned[n*n]; // ln(1000*1000*1000)/ln(2) = 30,所以一个不低于30bits有效位的类型即可
    for( size_t r=0; r!=n; ++r )
    {
        for( size_t c=0; c!=n; ++c )
        {
            scanf( "%u", &p[r*n+c] );

            unsigned upper = r==0 ? 0 : p[(r-1)*n+c];
            unsigned left  = c==0 ? 0 : p[r*n+(c-1)];
            p[r*n+c] += upper<left ? left : upper;
        }
    }
    // 竞赛题,不需要delete[]

    printf( "%u\n", p[n*n-1] );
}
2022-01-26 17:24
快速回复:拿金币 输出为啥为啥一直为0求助大佬
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024319 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved