实验3
实验任物二-------静态修饰后,P在fac第二次运行时不重置,再次与i相乘实现阶乘

#include <stdio.h> int func(int, int); int main() { int k = 4, m = 1, p1, p2; p1 = func(k, m); p2 = func(k, m); printf("%d, %d\n", p1, p2); return 0; } int func(int a, int b) { static int m = 0, i = 2; i += m + 1; // i=3 m=0 // i=12 m=8 m = i + a + b; // i=3 m=8=p1 // i=12 m=17=p2 return m; }
#include <stdio.h> long long func(int n) { long long ans; if(n == 1) { ans = 1; } else { ans = (func(n-1)+1)*2 - 1; } return ans; } int main() { int n; long long f; while (scanf("%d", &n) != EOF) { f = func(n); printf("n = %d, f = %lld\n", n, f); } return 0;
}
#include <stdio.h> int func(int n, int m) { int up,down,i; i = n-m+1; for(up=1; n>=i; n--) { up *= n; } for(down=1; m>0; m--) { down *= m; } up /= down; return up; } int main() { int n, m; while(scanf("%d%d", &n, &m) != EOF) printf("n = %d, m = %d, ans = %d\n", n, m, func(n, m)); return 0;
}
#include <stdio.h> int func(int n, int m) { int ans; if(m > n) { ans = 0; return ans; } else if(m == n) { ans = 1; return ans; } else if(m == 0) { ans = 1; return ans; } else if(m < n) { ans = func(n-1,m) + func(n-1,m-1); } } int main() { int n, m; while(scanf("%d%d", &n, &m) != EOF) printf("n = %d, m = %d, ans = %d\n", n, m, func(n, m)); return 0;
}
#include <stdio.h> #include <math.h> void move(char a,char b) { printf("%c --> %c\n",a,b); } void hanoi(int n,char A,char B,char C) { if(n == 1) { move(A,C); } else { hanoi(n-1,A,C,B); // A n-1至C 用B move(A,C); // A剩1至C hanoi(n-1,B,A,C); // B n-1值A 用C } } int main() { int N; while(scanf("%d",&N) != EOF) { int tol; tol = pow(2,N) - 1; hanoi(N,'A','B','C'); printf("\n"); printf("一共移动了%d次\n",tol); printf("\n"); } return 0;
}
#include <stdio.h> #include <math.h> long func(long s) { long ans = 0; int i = 0; while(s != 0) { if(s%2 != 0) { ans += (s%10)*pow(10,i); i++; s /= 10; } else { s /= 10; } } return ans; } int main() { long s, t; printf("Enter a number: "); while (scanf("%ld", &s) != EOF) { t = func(s); printf("new number is: %ld\n\n", t);
printf("Enter a number: "); }return 0;}






浙公网安备 33010602011771号