1. 程式人生 > 其它 >吉林大學超星MOOC高階語言程式設計 實驗08 結構化程式設計(2020級)

吉林大學超星MOOC高階語言程式設計 實驗08 結構化程式設計(2020級)

技術標籤:C語言學習記錄程式設計

吉林大學超星MOOC高階語言程式設計 實驗08 結構化程式設計(2020級)


1
題目編號:Exp08-Basic01,GJBook3-12-05

題目名稱:正整數分解

題目描述:正整數n,按第一項遞減的順序依次輸出其和等於n的所有不增的正整數和式。

輸入:一個正整數n(0<n≤15)。

輸出:每行輸出如樣例所示,和等於n的不增正整數和式,數字和運算子間無符號,最後一行結尾有一個回車換行符。

樣例:

輸入:
4
輸出:
4=3+1
4=2+2
4=2+1+1
4=1+1+1+1

#include<stdio.h> 

2
題目編號:Exp08-Basic02,GJBook3例-12-02

題目名稱:N皇后問題

題目描述:

八皇后問題由高斯(C. F. Gauss)最早在1850年提出並研究,但並未完全解決。N皇后問題指在一個N×N的棋盤上放置N個皇后,使任意兩個皇后都不能互相攻擊。按國際象棋規則,兩個皇后,若在同一行上,或在同一列上, 或在同一條斜線上, 則她們可以互相攻擊。下圖即滿足八皇后條件的一種棋局。
編寫程式給出滿足條件的棋局數目。
在這裡插入圖片描述
輸入:一個正整數N(0<N≤13)輸出:棋局數目
樣例1:

輸入:
2
輸出:
0
樣例2:

輸入:
8
輸出:
92

#include<stdio.h> 


3
題目編號:Exp08-Basic03

題目名稱:八皇后本質不同的解

題目描述:

如上題所述,當N=8時,一共有92種可能。如果去除其中上下對稱、左右對稱棋局、主副對角線對稱棋局和旋轉後重復棋局,則有12種完全不同的棋局。編寫程式,輸出這12種棋局。

輸入:

輸出:

共12行,每行輸出1種棋局,

例如,第一行輸出 No1:1 5 8 6 3 7 2 4(冒號為西文冒號且前後無多餘字元,冒號後的每個數字後均有一個西文空格),

其中No1 表示這是第1種棋局;後續數字序列表示八皇后所在位置,數值本身表示某個皇后在棋盤上的行座標,該數值所在位置表示該皇后的列座標(>0),例如,數字5位於序列的第2位,表示棋盤上第5行第2列有一個皇后;數字4位於序列的第8位,表示棋盤上第4行第8列有一個皇后,由此,這8個數字描述了一種棋局。12種棋局的輸出順序:字典序(參考樣例)。

樣例:

輸入:(無)
輸出:
No1:1 5 8 6 3 7 2 4
No2:1 6 8 3 7 4 2 5
……(此處省略10行,分別表示No3至No12棋局)

#include<stdio.h> 

4
題目編號:Exp08-Enhance02,GJBook3-12-17

題目名稱:Debruijn問題

題目描述:

如圖所示由2^3 個二進位制數字0和1組成一個環。使 2^3 個 3 位的二進位制數正好在環中各出現一次。圖中目前所示順序是:0、1、2、5、3、7、6、4。設計生成這樣環的程式,環由 2^n 個二進位制數字組成,恰好包含 2^n 個互不相同的n位二進位制數。
在這裡插入圖片描述

輸入:n(n<=4)

輸出:按照字典序輸出符合的答案(當出現多組本質不同的解時,僅輸出字典序中最小的那個序列);每行數字間以一個西文空格間隔,行末有一個換行符。

樣例1:

輸入:
3
輸出:
0 0 0 1 0 1 1 1

#include<stdio.h>