石头数字的总和
Manasa 和 她的朋友出去徒步旅行。她發現一條小河里邊順序排列著帶有數值的石頭。她開始沿河而走,發現相鄰兩個石頭上的數值增加?a?或者?b. 這條小河的盡頭有一個寶藏,如果Manasa能夠猜出來最后一顆石頭上的數值,那么寶藏就是她的。假設第一個石頭的上數值為0,找出最后一個石頭的可能的所有數值。
輸入格式
第一行包含整數?T, 代表測試數據的組數。?
每組數組包含三行:?
第一行包含?n,代表石頭的個數?
第二行包含?a
第三行包含?b
輸出格式?升序輸出最后一顆石頭上所有可能的數值, 用空格隔開。
取值范圍?
1 ≤?T?≤ 10?
1 ≤?n,?a,?b?≤ 103
樣例輸入 00
2 3 1 2 4 10 100樣例輸出 00
2 3 4 30 120 210 300樣例解析
第一組數據所有可能的數值為:
所以答案是:?2 3 4.
第二組數據所有可能的數值為:
所有答案是:?30 120 210 300
?
解決代碼:
#include <stdio.h>int main(int argc, const char * argv[]) {// insert code here...int testCount = 0;int depth = 4;int a = 10;int b = 100;scanf("%d", &testCount);for (int i=0; i<testCount; i++) {scanf("%d", &depth);scanf("%d", &a);scanf("%d", &b);if (depth == 0) {printf("%d\n", 0);continue;}int sum = 0;depth = depth - 1;//是較大值在前面,這樣輸出結果是升序的。if (a<b) {int tmp = a;a = b;b = tmp;}if (a == b) {printf("%d\n", a * depth);continue;}for (int i=0; i<=depth; i++) {int sumA = a * i;int sumB = b * (depth - i);sum = sumA + sumB;printf("%d ", sum);sum = 0;}printf("\n");}return 0; } 代碼?
轉載于:https://www.cnblogs.com/huangzizhu/p/3926509.html
總結
 
                            
                        - 上一篇: 纯css3开发的响应式设计动画菜单(支持
- 下一篇: Mac下修改ZOC中文乱码
