1. 程式人生 > 其它 >超星實驗03 模組化程式設計(2020級)(部分題解)

超星實驗03 模組化程式設計(2020級)(部分題解)

技術標籤:# 超星實驗程式設計c語言

1
題目編號:Exp03-Basic01,GJBook3-05-02
題目名稱:組合問題
題目描述:編寫程式,輸入m,n的值,計算並輸出函式f的值。
GJBook3-05-02.jpg
輸入:一個整數m和一個整數n(m,n≤20)。
輸出:函式f的值。
樣例1:
輸入:-1 2
輸出:-1
樣例2:
輸入:2 2
輸出:1

#include <stdio.h>
int main()
{
long long a=1,b=1,c=1;
int k;
int m,n;
scanf("%d %d",&m,&n);
if(m>
0&&n>0) { if(m<n) printf("0"); if(m==n) printf("1"); if(m>n) {//下面的分別計算比較巧妙 for(k=1;k<=m;k++) a*=k; for(k=1;k<=n;k++) b*=k; for(k=1;k<=m-n;k++) c*=k; printf("%d",a/(b*c)); } } else printf("-1"); return 0; }

2
題目編號:Exp03-Basic02,GJBook3-05-06

題目名稱:逆序數
題目描述:編寫函式,求任意位自然數的逆序數,例如5432就是2345的逆序數。
輸入:任意一個整數(<10^18) 。
輸出:如果輸入的不是自然數,則輸出NULL;否則輸出對應的逆序數。
樣例1:
輸入:120
輸出:21
樣例2:
輸入:999999999999999999
輸出:999999999999999999
樣例3:
輸入:-1357
輸出:NULL

#include<stdio.h>//這個貌似數一大就不行了orz。
int f(int num)
{
	int t=0;
	int n=num;
	while(n)
	{
		t=t*10+n%10;
		n=
n/10; } return t; } int main() { int num; scanf("%d",&num); printf("%d",f(num)); return 0; }