--- tags: DICE C --- 20-2 祕密差 === > [name=CHAWTeam] 目錄:[DICE C語言程式破解](/@CHAWTeam/DiceC) 題目 --- ```! 將一個十進位正整數的奇數字數的和稱為 A,偶數字數的和稱為 B,則 A 與 B 的絕 對差值|A-B|稱為這個正整數的祕密差。 例如:263541 的奇數字數的和 A = 6+5+1 = 12,偶數字數的和 B = 2+3+4 = 9,所以 263541 的祕密差是|12-9|= 3。 給定一個十進位正整數 X,請找出 X 的祕密差。 輸入格式 輸入為一行含有一個十進位表示法的正整數 X,之後是一個換行字元。 輸出格式 請輸出 X 的祕密差 Y(以十進位表示法輸出),以換行字元結尾。 範例一:輸入 263541 範例一:正確輸出 3 (說明)263541 的 A = 6+5+1 = 12,B = 2+3+4 = 9,|A-B|= |12-9|= 3。 範例二:輸入 131 範例二:正確輸出 1 (說明)131 的 A = 1+1 = 2,B = 3,|A-B|= |2-3|= 1。 知識點:字元、字串 ``` 程式碼 --- ```c= #include <stdio.h> int main() { int a, b, c, t; scanf("%d %d %d", &a, &b, &c); if (a > b) { t = a; a = b; b = t; } if (b > c) { t = b; b = c; c = t; } if (a > b) { t = a; a = b; b = t; } printf("%d %d %d\n", a, b, c); //三角形條件 if (a + b <= c) printf("No\n"); //鈍角三角形 else if (a * a + b * b < c * c) printf("Obtuse\n"); //直角三角形 else if (a * a + b * b == c * c) printf("Right\n"); //銳角三角形 else if (a * a + b * b > c * c) printf("Acute\n"); return 0; } ``` ```cpp= #include<iostream> #include<algorithm> using namespace std; int main(){ int a[3],num; while(cin>>a[0]>>a[1]>>a[2]){ sort(a,a+3,less<int>()); for(int i=0;i<3;i++) { cout << a[i] << " "; } cout <<endl; if(a[0]+a[1]<=a[2]) { cout <<"No" <<endl; } else if(a[0]*a[0]+a[1]*a[1] < a[2]*a[2]) cout << "Obtuse" <<endl; else if(a[0]*a[0]+a[1]*a[1] == a[2]*a[2]) cout << "Right" <<endl; else if(a[0]*a[0]+a[1]*a[1] > a[2]*a[2]) cout << "Acute" <<endl; } return 0; } ``` 執行 --- ### 輸入 ```! 3 4 5 ``` ### 輸出 ```! 3 4 5 Right ``` --- [查看我們在HackMD上的所有筆記](/@CHAWTeam) 目錄:[DICE C語言程式破解](/@CHAWTeam/DiceC) --- {%hackmd Iiu5mOixR7yWkPHKCkabBg %} <iframe class="LikeCoin" height="235" src="https://button.like.co/in/embed/chawteam/button?referrer=https://hackmd.io/@CHAWTeam/DiceC-20-2" width="100%"></iframe> --- {%hackmd i1nMRrZcTFmTvoF897K9zg %}