题解 | 构造数独

构造数独

https://www.nowcoder.com/practice/bf8ffcbf95f743d7bbb2dd96bafa1a3c

C++ ① B = k * E ② 循环矩阵,每一行移一位

#include <iostream>
using namespace std;

int main() {
    int n, k;
    // 严格来说,一行/列不能出现重复元素,但题目未要求
    // 仅要求所有元素都是非负整数 -- B = k * E
    cin >> n >> k;
    for (int i=0; i<n; i++) {
        for (int j=0; j<n; j++) {
            if (i==j) cout << k << ' ';
            else cout << 0 << ' ';
        }
        cout << endl;
    }    
}
// 64 位输出请用 printf("%lld")

② 适合求解:每个元素为正整数,且每一行/列不出现相同元素 要求 n(n+1)/2 <= k;但本题不要求

#include <iostream>
using namespace std;

int main() {
    int n, k;
    cin >> n >> k;
    int e1=k/n, e2=e1+k%n;
    for (int i=0; i<n; i++) {
        for (int j=0; j<n-i-1; j++) {
            cout << e1 << ' ';
        }
        cout << e2 << ' ';
        for (int j=n-i; j<n; j++) {
            cout << e1 << ' ';
        }
        cout << endl;
    }    
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

程序员小白条:现在这个简历很没竞争力,而且很多都不要28届的,基本就看运气了,如果没简历包装的话,就海投中小厂吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务