赞
踩
专业融合:飞行速度的题无法AC正常
A+B
- #include <stdio.h>
- int add()
- {
- int a,b,sum;
- scanf("%d%d",&a,&b);
- sum=a+b;
- return sum;
- }
- int main()
- {
- int result;
- result=add();
- printf("%d",result);
- return 0;
- }
数据类型的大小和范围
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int d;
-
- scanf("%d",&d);
-
- if (d==1){
- printf("1,-128,127");
- }else if (d==2){
- printf("1,0,255");
- }else if (d==3){
- printf("2,-32768,32767");
- }else if (d==4){
- printf("2,0,65535");
- }else if (d==5){
- printf("4,-2147483648,2147483647");
- }else if (d==6){
- printf("4,0,4294967295");
- }else if (d==7){
- printf("4,-2147483648,2147483647");
- }else if (d==8){
- printf("4,0,4294967295");
- }else if (d==9){
- printf("8,0,9223372036854775807");
- }else if(d==10){
- printf("8,0,18446744073709551615");
- }
- return 0;
-
- }

平均值
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- long int a,b,avg;
- scanf("%ld %ld",&a,&b);
- avg=(a+b)/2;
- printf("%ld",(long int)(avg));
- return 0;
- }
-
进制转换
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int a;
- scanf("%d",&a);
- printf("%X,%o",a,a);
- return 0;
- }
浮点数输出
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- double a;
- scanf("%lf",&a);
- printf("%.6f,%.2f,%.8f",a,a,a);
- return 0;
- }
动态宽度输出
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- double a;
- scanf("%lf",&a);
- printf("%.6f,%.2f,%.8f",a,a,a);
- return 0;
- }
计算地球上两点之间的距离
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- double a;
- scanf("%lf",&a);
- printf("%.6f,%.2f,%.8f",a,a,a);
- return 0;
- }
风寒指数
- #include <stdio.h>
- #include <stdlib.h>
- #include<math.h>
- int main()
- {
- double a,b,d,result;
- int c;
- scanf("%lf %lf",&a,&b);
- d=pow(a,0.16);
- result=13.12+0.6215*b-11.37*d+0.3965*b*d;
- c=(int)round(result);
- printf("%d",c);
- return 0;
-
- }
颜色模型转化
- #include <stdio.h>
- #include <stdlib.h>
- #include<math.h>
-
- unsigned int Max(int x,int y,int z)
- {
- unsigned int max;
- if(x>y) max=x;
- else max=y;
- if(z>max) max=z;
- return max;
- }
-
- unsigned int Min(int x,int y,int z)
- {
- unsigned int min;
- if(x>y) min=y;
- else min=x;
- if(z<min) min=z;
- return min;
- }
-
- int main()
- {
- unsigned int R,G,B,a;
- double H,S,V;
- scanf("%u %u %u",&R,&G,&B);
- V = Max(R,G,B);
- a = Min(R,G,B);
- if(V==0) S=0;
- else S=(V-a)/V;
-
- if (V==R) H=60*(G-B)/(V-a);
- else if(V==G) H=60*(2+(B-R)/(V-a));
- else H=60*(4+(R-G)/(V-a));
- if (H<0) H=H+360;
- S = S*100;
- V = V/255;
- V = V*100;
- printf("%.4lf,%.4lf%%,%.4lf%%",H,S,V);
- return 0;
- }

倍数和
- #include <stdio.h>
- #include <stdlib.h>
- #include<math.h>
- int main()
- {
- int i=0,m=1,n=0,sum=0,T=0;
- scanf("%d",&T);
- while (i<T){
- scanf("%d",&n);
- while(m<n){
- if ((m%3==0)&&(m%5==0)){
- sum=sum+m;
- m++;
- }else if ((m%3!=0)&&(m%5==0)){
- sum=sum+m;
- m++;
- }else if ((m%3==0)&&(m%5!=0)){
- sum=sum+m;
- m++;
- }else {
- m++;
- }
- }
- printf("%d\n",sum);
- i++;
- }
-
-
- return 0;
- }

组合数
- #include <stdio.h>
- #include <stdlib.h>
- #include<math.h>
- int main()
- {
- int a,b,c,d,n,i;
- scanf("%d",&n);
- for (a=0;a>=0&&a<=9;a++)
- for (b=0;b>=0&&b<=9;b++)
- for (c=0;c>=0&&c<=9;c++)
- for (d=0;d>=0&&d<=9;d++)
- if(a+b+c+d==n){
- i++;
- }
- printf("%d",i);
- return 0;
- }

级数和
- #include <stdio.h>
- #include <stdlib.h>
- #include<math.h>
- int main()
- {
- int a;
- double b,c,n,sum=0;
- scanf("%lf",&n);
- for (a=1,b=2;a<n,b<(n+1);a++,b++){
- if (b<10){c=a+(b/10);
- printf("%.1lf+",c);
- }else if(b==10) {c=a+(b/100);
- printf("%.1lf+",c);
- }else if(b==100) {c=a+(b/1000);
- printf("%.2lf+",c);
- }else { c = a + (b/100);
- printf("%.2lf+",c);
- }
- sum = sum + c;
-
- }
- if (n<9){
- c=n+((n+1)/10);
- printf("%.1lf",c);
- }else if (n==9){
- c=n+((n+1)/100);
- printf("%.1lf",c);
- }else if (n==99) {c=99.10;
- printf("%.2lf",c);
- }else {c=n+((n+1)/100);
- printf("%.2lf",c);
- }
- sum = sum + c;
-
-
- if(n<10)printf("=%.1lf",sum);
- else printf("=%.2lf",sum);
-
- return 0;
- }

幂数模
- #include <stdio.h>
- #include <stdlib.h>
- //long long int model(long long int *result,long long int num,long long int mod);
- long long int BinExp(long long int num,long long int index,long long int mod);
- int main()
- {
- long long int num,index,mod,result;scanf("%lld%lld%lld",&num,&index,&mod);//输入底数,指数和取模的数
- result = BinExp(num,index,mod);
- printf("%lld",result);
- }
- long long int BinExp(long long int num,long long int index,long long int mod)//解决快速幂的问题
- {
- long long int result=1;//结果
- while(index!=0)
- {
- if(index&1)//index%2==1
- result=(result*num)%mod;
- num=(num*num)%mod;
- index >>= 1;//index=index/2
- }
- return result;
- }

乘数模
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- long long int a,b,m,result1,result2,result;
- scanf("%lld %lld %lld",&a,&b,&m);
- result1=b%m;
- result2=a%m;
- result=(result1*result2)%m;
- printf("%lld",result);
- return 0;
- }
分数的加减乘除法
- #include <stdio.h>
- #include <stdlib.h>
-
- int gys(int x,int y)
- {
- int m;
- while (m=x%y){
- x=y;
- y=m;
- }
- return y;
- }
-
- int main()
- {
- int a,b,c,d,num,den,div;
- scanf("%d/%d\n",&a,&b);
- scanf("%d/%d",&c,&d);
- num=a*d+b*c;
- den=b*d;
- div=gys(num,den);
- num=num/div;
- den=den/div;
- printf("(%d/%d)+(%d/%d)=%d/%d\n",a,b,c,d,num,den);
- num=a*d-b*c;
- den=b*d;
- div=gys(num,den);
- num=num/div;
- den=den/div;
- printf("(%d/%d)-(%d/%d)=%d/%d\n",a,b,c,d,num,den);
- num=a*c;
- den=b*d;
- div=gys(num,den);
- num=num/div;
- den=den/div;
- printf("(%d/%d)*(%d/%d)=%d/%d\n",a,b,c,d,num,den);
- num=a*d;
- den=b*c;
- div=gys(num,den);
- num=num/div;
- den=den/div;
- printf("(%d/%d)/(%d/%d)=%d/%d",a,b,c,d,num,den);
- return 0;
-
- }

比率
- #include <stdio.h>
- #include <stdlib.h>
-
- int gys(int x,int y)
- {
- int m;
- while (m=x%y){
- x=y;
- y=m;
- }
- return y;
- }
- int main()
- {
- double a;
- int num,den=10000,div;
- scanf("%lf",&a);
- num=a*10000;
- div=gys(num,den);
- num=num/div;
- den=den/div;
- printf("%d/%d",num,den);
- return 0;
- }

操作数
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int i,j=0,n=0,sum=0;
- scanf("%d",&n);
- i=n;
- for (;n>0;j++){
-
- for (;i!=0;i=i/10){
- sum=sum+i%10;
- }n=n-sum;
- i=n;
- sum=0;
- }
- printf("%d",j);
- return 0;
- }

方阵
- #include<stdio.h>
- #include<math.h>
- int main()
- {
- long long n;
- scanf("%lld",&n);
- long long i,j;
- long long h;
- for(i=0;i<n;i++)
- {
- for(j=0;j<n;j++)
- {
- h=abs(i-j);
- printf("%lld",h);
- if(j!=n-1)
- printf(" ");
- else
- printf("\n");
- }
- }
- return 0;
- }

对称数
- #include <stdio.h>
- #include <stdlib.h>
- #include<math.h>
- int main()
- {
- int a,b,digit=0,p=0,m,n,k,i=0;
- scanf("%d",&n);
- m=n;
- k=n;
- while (m!=0)
- {
- m=m/10;
- digit++;
- }
- while (n>0){
- a=n%10;
- if (a==0||a==1||a==6||a==8||a==9){
- if(a==0&&i==0){
- break;
- }else if (a==1){
- p+=pow(10,digit-1);
- }else if (a==6){
- p+=pow(10,digit-1)*9;
- }else if (a==9){
- p+=pow(10,digit-1)*6;
- }else if (a==8){
- p+=pow(10,digit-1)*8;
- }else p=p;
- }else {
- break;
- }n/=10;
- i++;
- digit--;
- }
- if (p==k||k==0) printf("Yes");
- else printf("No");
- return 0;
-
- }

俄罗斯农夫算法
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- long a,b;
- long sum=0;
- scanf("%ld %ld",&a,&b);
- if (a == 0 || b == 0){
- printf("0\n");
- }else if (a == 1){
- printf("%ld\n",b);
- }else {
- printf("%ld %ld\n",a,b);
- while (a!=1){
- if (a%2==1){
- sum=sum+b;
- }
- a=a/2;
- b=b*2;
- printf("%ld %ld\n",a,b);
- }
- sum=sum+b;
- printf("%ld\n",sum);
- }
- return 0;
- }

最大数字
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int n,i,a,b,judge;
- scanf("%d",&n);
- i=n;
- while (n!=0){
- while (n!=0){
- a=n%10;
- b=a;
- n=n/10;
- a=n%10;
- if (b<a) {
- judge=0;
- break;
- }
- else {
- judge=1;
- continue;
- }
- }
- if (judge==0){
- i--;
- n=i;
- }else {
- printf("%d",i);
- break;
- }
- }
- return 0;
- }

余数和
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int n,k,sum=0;
- scanf("%d %d",&n,&k);
- for (int i=1;i<=n;i++){
- sum = sum + k%i;
- }
- printf("%d",sum);
- return 0;
- }
查找数列
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int n,sum=0;
- scanf("%d",&n);
- for (int i=1;sum<=n;i++){
- sum +=i;
- if(sum>=n){
- printf("%d",n-sum+i);
- break;
- }
- }
- return 0;
- }

方案数
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int n,m,p,i=1,sum=0,j=0;
- scanf("%d",&n);
- for (m=1;i<=n;m++){
- i=m;//while语句跳出后,要重置i的值
- while (n){
- sum +=i;
- if (sum>n){
- sum=0;
- break;//sum过大,重置循环
- }else if (sum <n){
- i++;//sum不足,继续循环
- }else {
- j++;//满足后记录,并重置循环
- sum=0;
- break;
- }
-
- }
- }
- printf("%d",j);
- return 0;
- }

毕达哥拉斯三元组、
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int a,b,c,n,flag;
- long long sum;
- scanf("%d",&n);
- for (a=0;a<n;a++){
- for (b=a;b<n;b++){
- c=n-a-b;
- if(a+b>c&&b-a<c&&a*a+b*b==c*c){
- flag=1;
- sum=a*b*c;
- printf("%lld",sum);
- break;
- }else {
- flag=0;
- continue;
- }
- }
- if (flag==1) break;
- else continue;
- }
-
-
- return 0;
- }

竖式乘法
- #include <stdio.h>
- #include <stdlib.h>
-
- int digit(int x)
- {
- int i;
- for (i=0;x>0;x=x/10){
- if (x==0) break;
- else i++;
- }
- return i;
- }
-
-
-
- int main()
- {
- int a,b,d,i=0,c,d1,g=0,b1;
- scanf("%d %d",&a,&b);
- d = digit(a*b);
- d1=d;
- b1=b;
- if (a!=0&&b!=0){printf("%*d\n",d+1,a);
- printf("x%*d\n",d,b);
- while (i<d+1) {
- printf("-");
- i++;
- }
- printf("\n");
- for (int j=0;b>0;b=b/10){
- if (b>9){
- c=b%10;
- printf("%*d\n",d+1,c*a);
- d--;
- }else {
- c=b%10;
- printf("+%d\n",c*a);
- }
- }
- while (g<d1+1) {
- printf("-");
- g++;
- }
- printf("\n");
- printf(" ");
- printf("%d",a*b1);}
- else if(b==0){
- printf(" ");
- printf("%d\n",a);
- printf("x%*d\n",digit(a),b);
- while (g<digit(a)+1) {
- printf("-");
- g++;
- }
- printf("\n%*d",digit(a)+1,0);
- }else {
- printf(" ");
- printf("%d\n",a);
- printf("x%*d\n",digit(b),b);
- while (g<digit(b)+1) {
- printf("-");
- g++;
- }
- printf("\n%*d",digit(b)+1,0);
- }
- return 0;
- }
-

阶乘倍数
- #include <stdio.h>
- #include <math.h>
- #include <stdlib.h>
- int panduan(int num)
- {
- for(int i=2;i*i<=num;i++)
- {
- if(num%i==0)
- {
- return 0;
- }
- }
- return 1;
- }
- int main()
- {
- long long int n=1,k,plus=1;
- scanf("%lld",&k);
- if(panduan(k))
- {
- printf("%lld",k);
- }
- else for(n=1;plus%k!=0;n++)
- {
- plus=n*plus;
- if(plus%k==0)
- {
- printf("%lld",n);
- break;
- }
- }
- return 0;
- }

倒水
- #include <stdio.h>
- #include <stdbool.h>
- #include <stdlib.h>
-
- typedef struct {
- int x, y; // 杯子1和杯子2的当前水量
- int steps; // 当前步数
- } State;
-
- int min(int a, int b) {
- return a < b ? a : b;
- }
-
- bool isTargetState(State state, int target_y) {
- if(state.y == target_y || state.x == target_y)
- return true;
- else
- return false;
-
- }
-
- int minOperationsToReachD(int m, int n, int d) {
- if (d >= n) return -1; // 无法达到目标
-
- bool visited[1001][1001] = {false}; // 标记状态是否已经访问过
- visited[0][0] = true;
-
- State queue[10000]; // 使用数组模拟队列
- int front = 0, rear = 0;
-
- queue[rear++] = (State){0, 0, 0}; // 初始状态
-
- while (front != rear) {
- State curr = queue[(front++) % 10000];
- if (isTargetState(curr, d)) {
- return curr.steps;
- }
-
- // 尝试各种可能的状态转移
- State nextStates[6] = {
- {m, curr.y, curr.steps + 1}, // 将第一个杯子倒满
- {curr.x, n, curr.steps + 1}, // 将第二个杯子倒满
- {0, curr.y, curr.steps + 1}, // 将第一个杯子倒空
- {curr.x, 0, curr.steps + 1}, // 将第二个杯子倒空
- {curr.x - min(curr.x, n - curr.y), curr.y + min(curr.x, n - curr.y), curr.steps + 1}, // 将第一个杯子倒入第二个杯子
- {curr.x + min(curr.y, m - curr.x), curr.y - min(curr.y, m - curr.x), curr.steps + 1} // 将第二个杯子倒入第一个杯子
- };
-
- for (int i = 0; i < 6; i++) {
- State nextState = nextStates[i];
- if (nextState.x >= 0 && nextState.x <= m && nextState.y >= 0 && nextState.y <= n
- && !visited[nextState.x][nextState.y]) {
- visited[nextState.x][nextState.y] = true;
- queue[(rear++) % 10000] = nextState;
- }
- }
- }
-
- return -1; // 无法达到目标
- }
-
- int main() {
- int m, n, d;
- scanf("%d%d%d", &m, &n, &d);
- int minOps = minOperationsToReachD(m, n, d);
- printf("%d", minOps);
-
- return 0;
- }

好数字
- #include <stdio.h>
- #include <math.h>
- // 计算 (base^exponent) mod modulus
- unsigned long long power_mod(unsigned long long base,unsigned long long exponent,unsigned long long modulus) {
- if (modulus == 1)
- return 0;
-
- unsigned long long result = 1;
-
-
- while (exponent > 0) {
- // 如果指数为奇数,乘以 base 并对 modulus 取模
- if (exponent % 2 == 1)
- result = (result * base) % modulus;
-
- // 将指数减半,底数取平方并对 modulus 取模
- exponent = exponent >> 1;
- base = (base * base) % modulus;
- }
-
- result = result % modulus;
- return result;
- }
-
- int main() {
- unsigned long long n;
- int mod = 1000000007;
-
- scanf("%llu", &n);
-
- unsigned long long a, b;
- a = (n + 1) / 2;
- b = n - a;
-
- unsigned long long result1 = power_mod(5, a, mod);
- unsigned long long result2 = power_mod(4, b, mod);
- printf("%llu", power_mod(result1*result2, 1, mod));
-
- return 0;
- }

佩尔数
- #include <stdio.h>
- #include <stdlib.h>
-
-
- int PA(int n)
- {
- if (n==0) return 0;
- else if (n==1) return 1;
- return 2*PA(n-1)+PA(n-2);
- }
-
-
- int PB(int n)
- {
- int p0=0,p1=1,pn,i;
- for (i=0;i<=n;i++)
- if (i==0) pn=p0;
- else if (i==1) pn=p1;
- else {
- pn=2*p1+p0;
- p0=p1;
- p1=pn;
- }
- return pn;
- }
-
-
- int main()
- {
- int n;
- scanf("%d",&n);
- if (n%2==0) printf("%d",PB(n));
- else printf("%d",PA(n));
- return 0;
- }

可变参数累加
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdarg.h>
-
- int Sum(int count,int num, ...)
- {
- int i,sum=num;
- va_list ap;
- va_start(ap,num);
- for (i=1;i<count;i++){
- sum+=va_arg(ap,int);
- }
- va_end(ap);
- return sum;
- }
-
-
- int main()
- {
- int a,b,c,d,e,f;
- scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f);
- printf("%d",Sum(2,a,b)-Sum(4,c,d,e,f));
- return 0;
- }

冰雹序列
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int n;
- scanf ("%d",&n);
- printf("%d ",n);
- while (n!=1){
- if (n%2==0&&n!=2) {
- printf("%d ",n/2);
- n=n/2;
- }
- else if (n==2) {
- printf("1");
- n=1;
- }
- else {
- printf("%d ",3*n+1);
- n=3*n+1;
- }
- }
- return 0;
- }

基思数
- #include <stdio.h>
- #include <stdlib.h>
-
- int lsKeith(int n)
- {
- int wei = 0,i,sum = 0,N,j;
- N = n;
- while (n != 0){
- n = n/10;
- wei++;
- }
- n = N;
- int s[wei];
- for (i = 0;i < wei;i++){
- s[wei-i-1] = n % 10;
- sum += s[wei-i-1];
- n = n/10;
- }
- i = 0;
- while (1){
- for (j = 0;j < wei-1;j++){
- s[j] = s[j+1];
- }
- s[wei-1] = sum;
- sum = 0;
- while (i <= wei-1){
- sum += s[i];
- i++;
- }
- i = 0;
- if (sum == N) {
- return 1;
- break;
- }
- if (sum > N) {
- return 0;
- break;
- }
-
- }
-
- }
-
-
-
- int main()
- {
- int n;
- scanf ("%d",&n);
- if (lsKeith(n)) printf("Yes");
- else printf("No");
- return 0;
- }

哈沙得数
- #include <stdio.h>
- #include <stdlib.h>
-
- int HarshadNumber(int n)
- {
- int t = n,s = 0;
- while (t){
- s = s + t%10;
- t = t/10;
- }
- if (s && n%s == 0) return n/s;
- return 0;
- }
-
-
- int main()
- {
- int n,i = 1,a;
- scanf("%d",&n);
- if (HarshadNumber(n) == 0) printf("0");
- else if (HarshadNumber(n) == 1) printf("1");
- else {
- while (HarshadNumber(n)){
- n = HarshadNumber(n);
- a = HarshadNumber(n);
- i++;
- if (a==0) i--;
- if (a == 1) break;
- }
- printf("%d",i);
- }
- return 0;
- }

二进制表示
- #include <stdio.h>
- #include <stdlib.h>
-
- void binary(int num)
- {
- if (num == 1){
- printf("2(0)");
- return;
- }
- if (num == 2){
- printf("2");
- return;
- }
- if (num == 3){
- printf("2+2(0)");
- return;
- }
- int power = 0;
- int temp = num;
- while (temp > 1){
- temp/=2;
- power++;
- }
- printf("2(");
- binary(power);
- printf(")");
- if (num - (1<<power)!=0){
- printf("+");
- binary(num-(1<<power));
- }
- }
-
- int main()
- {
- int n;
- scanf("%d",&n);
- binary(n);
- return 0;
- }

光线追踪
- #include <stdio.h>
- #include <stdlib.h>
-
- typedef long long ll;
-
- ll work(ll a,ll b)
- {
- if (b == 0)
- return -a;
- else
- return a/b*2*b+work(b,a%b);
- }
- int main()
- {
- ll n,x;
- scanf("%lld %lld",&n,&x);
- ll a,b;
- if (n-x>x){
- a=n-x;
- b=x;
- }
- else {
- a=x;
- b=n-x;
- }
- printf("%lld",n+work(a,b));
- return 0;
- }

运动会
- #include <stdio.h>
- #include <stdlib.h>
-
- int phi[40001];
- void eular()
- {
- phi[1] = 1;
- for (int i =2;i <=40000;i++){
- if (phi[i] == 0){
- for (int j = i;j <= 40000;j += i){
- if (phi[j] == 0){
- phi[j] = j;
- }
- phi[j] = phi[j]/i*(i-1);
- }
- }
- }
- }
-
- int main()
- {
- int n;
- scanf("%d",&n);
- eular();
- int ans = 0;
- for (int i = 1;i < n;i++){
- ans +=phi[i];
- }
- printf("%d",2 * ans + 1);
- return 0;
- }

素数
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdbool.h>
- bool panduan(int num)
- {
- if (num < 2){
- return false;
- }
- for (int i = 2;i * i <= num;i++){
- if (num % i == 0)
- return false;
- }
- return true;
- }
-
-
- int main()
- {
- int a,b,num = 0;
- scanf ("%d %d",&a,&b);
- for (int i = a;i <= b;i++){
- if (i % 6 == 1 || i % 6 == 5)
- if (panduan(i))
- num++;
- }
- printf ("%d",num);
- return 0;
- }

可变参数平均
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdarg.h>
-
- double Sum(double count,double num, ...)
- {
- double i,sum=num;
- va_list ap;
- va_start(ap,num);
- for (i=1;i<count;i++){
- sum+=va_arg(ap,double);
- }
- va_end(ap);
- return sum;
- }
-
-
- int main()
- {
- double a,b,c,d,e;
- scanf("%lf %lf %lf %lf %lf",&a,&b,&c,&d,&e);
- printf("%.4lf",Sum(2,a,b)/2-Sum(3,c,d,e)/3);
- return 0;
- }

行列式值
- #include<stdio.h>
-
-
- int square(int n,int arr[100][100]){
- if(n==1)
- return arr[1][1];
- else if(n==2)
- return arr[1][1]*arr[2][2]-arr[1][2]*arr[2][1];
- else{int ans=0;
- int t_arr[100][100];
- for(int k=1;k<=n;k++){
- int t_i=1;
- for(int i=2;i<=n;i++,t_i++){
- int t_j=1;
- for(int j=1;j<=n;j++){
- if(j==k){
- continue;
- }
- t_arr[t_i][t_j]=arr[i][j];
- t_j++;
- }
- }
- int sign=(k%2==0)?-1:1;
- ans+=arr[1][k]*square(n-1,t_arr)*sign;
- }
- return ans;
- }
- }
- int main(){
- int n;
- scanf("%d",&n);
- int arr[100][100];
- for(int i=1;i<=n;i++)
- for(int j=1;j<=n;j++)
- scanf("%d",&arr[i][j]);
- int ans=square(n,arr);
- printf("%d",ans);
- return 0;
- }

货运优化
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- int arr[7];
- int res[4]={0,5,3,1};//3*3放完还有这么多个位置可以放2*2
- int ans1[1000]={0};
- int m = 0;
- while (1){
- int sum = 0;
- int ans = 0;
- for (int i = 1;i<7;i++){
- scanf("%d",&arr[i]);
- sum +=arr[i];
- }
- if (sum == 0)
- break;
- ans = arr[6] + arr[5] + arr[4] + (arr[3] + 4 - 1)/4;
- int ret2 = 5 * arr[4] + res[arr[3]%4];
- if (ret2 < arr[2])
- ans += (arr[2] - ret2 + 9 - 1)/9;
- int ret1 = ans * 36 - (36 * arr[6] + 25 * arr[5] + 16 * arr[4] + 9 * arr[3] + 4 * arr[2]);
- if (ret1 < arr[1])
- ans += (arr[1] - ret1 + 36 - 1)/36;
- ans1[m] = ans;
- m++;
- }
- for (int i = 0;;i++){
- if (ans1[i]==0)
- break;
- printf("%d\n",ans1[i]);
- }
- return 0;
- }

蒙特卡罗方法求积分
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- double hanshu1(double x)
- {
- return pow(x,4)*exp(-x);
- }
- double hanshu2(double x)
- {
- return x * x + 1;
- }
- double hanshu3(double x)
- {
- return cos(x);
- }
- double hanshu4(double x)
- {
- return sqrt(x) * (x - 2);
- }
- double hanshu5(double x)
- {
- return 2 * sin(x) - 5 * cos(x);
- }
-
- double func(int m,double x)
- {
- switch(m){
- case 1:return hanshu1(x);
- case 2:return hanshu2(x);
- case 3:return hanshu3(x);
- case 4:return hanshu4(x);
- case 5:return hanshu5(x);
- default:return -1;
- }
- }
- double jifen(int m,double a,double b,int n)
- {
- srand(RAND_MAX);
- double w = b - a,sum = 0;
- for(int i = 1;i<n;++i){
- double x = ((double)rand()/RAND_MAX) * w + a;
- sum += func(m,x);
- }
- sum *= w / n;
- return sum;
- }
-
- int main()
- {
- int m,n;
- double a,b;
- scanf ("%d %lf %lf %d",&m,&a,&b,&n);
- printf("%lf",jifen(m,a,b,n));
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。