Integer 4 can be expressed as a sum of 1s, 2s, and 3s in seven different ways as follows:
1 + 1 + 1 + 1; (1)
1 + 1 + 2; (2)
1 + 2 + 1; (3)
2 + 1 + 1; (4)
2 + 2; (5)
1 + 3; (6)
3 + 1: (7)
Write a program that determines the number of ways in which a given integer can be expressed as a sum of 1s, 2s, and 3s. You may assume that the integer is positive and less than 20.
Input
The input consists of T test cases. The number of test cases (T ) is given in the first line of the input. Each test case consists of an integer written in a single line.
Output
Print exactly one line for each test case. The line should contain an integer representing the number of ways.
Sample Input
3
4
7
10
Sample Output
7
44
274
Problem Source: SJTU Programming Contest 2004
#include <stdio.h>int sum;void f(int n){ if(n>=3) f(n-3); if(n>=2) f(n-2); if(n>=1) f(n-1); if(n == 0) sum++;}int main(){ int n,num; scanf("%d",&n);
while(n>0) { sum = 0; scanf("%d",&num); f(num); printf("%d/n",sum); n--; }return 0; }