zoukankan      html  css  js  c++  java
  • C语言(枚举,DEVFORGE学编程社区)

    1、解不等式

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int main()
     5 {
     6     int a,b,n=1,n1;
     7     scanf("%d%d",&a,&b);
     8         
     9     double sum = 1, d = 1;
    10     while(sum<=a || sum>=b)
    11     {
    12         n++;    
    13         d += 1.0/n; //迭代除数d
    14         sum += 1/d;  //累加        
    15     }        
    16     n1 = n;//保留区间下限值
    17     
    18     while(sum>a&&sum<b)
    19     {    
    20         n++;
    21         d += 1.0/n; //迭代除数d
    22         sum += 1/d;  //累加        
    23     }
    24     n--; //保留区间上限值
    25     
    26     printf("%d %d",n1,n);
    27     return 0;
    28 }

    2、子序列的和

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int main()
     5 {
     6     int n,m;
     7     scanf("%d%d",&n,&m);
     8     
     9     double sum = 0,t=0.000001,d;
    10         
    11     for(int i=n; i<=m; ++i)
    12     {
    13         d = (i/1000.0)*(i/1000.0); //防止数据陷进
    14         sum += t/d;
    15     }    
    16     
    17     printf("%.5f",sum);
    18     
    19     return 0;
    20 }

    3、排列

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int fun(int *arr, int n)
     5 {
     6     int a = n%10, b = n/10%10,c = n/100;
     7     if(!a || !b || ++arr[a]>1 || ++arr[b]>1 || ++arr[c]>1)
     8         return 0;
     9     return 1;
    10 }
    11 
    12 int main()
    13 {
    14     for(int i=123; 3*i<=987; ++i)
    15     {        
    16         int arr[10] = {0};
    17         if(fun(arr,i)&& fun(arr,i*2) && fun(arr,i*3))
    18             printf("%d %d %d
    ",i,i*2,i*3);    
    19     } 
    20     return 0;
    21 }

    4、探索合数世纪

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int isPrime(int n)
     5 {
     6     for(int i=3; i<=sqrt(n); i+=2)
     7         if(n%i==0)
     8             return 0;
     9     return 1;        
    10 }
    11 
    12 int main()
    13 {
    14     long a=1,b;
    15     int n,m=0,s;
    16     scanf("%d",&n);
    17     
    18     while(m!=n)
    19     {
    20         a++;    /*a世纪*/
    21         s=100/2; /*a世纪100/2个奇数年号, 全部为合数, 为合数世纪*/
    22         
    23         for(b=a*100-99; !isPrime(b) && b<a*100; b+=2) /*枚举a世纪奇数年号b*/
    24         {    
    25             s--;  /*年号b为合数时,s--*/
    26         }
    27         
    28         if(!s)   /*s为0, 是合数世纪 m++*/
    29             m++;
    30     }
    31     
    32     printf("%ld %ld
    ",a*100-100,a*100-1);/*输出合数世纪起始年份*/
    33 
    34     return 0;
    35 }

    5、特殊整数

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int fun(int i, int m)/*计算是否含有m*/
     5 {
     6     while(i)
     7     {
     8         if(i%10 == m)
     9             return 1;
    10         i /= 10;
    11     }
    12     return 0;
    13 }
    14 
    15 int main()
    16 {
    17     int m,n,g=0;
    18     long s=0;
    19     scanf("%d%d",&m,&n);
    20     
    21     int t=n, a=1, b=0;/*计算n位数的起始位置a,b*/
    22     while(t--)
    23     {
    24         a = a*10;
    25         b = b*10 + 9;
    26     }
    27     
    28     /*n位数的起始位置a,b*/
    29     for(int i=a/10; i<b; ++i)
    30     {
    31         if(i%m && fun(i,m)){ /*不被m整除且含有m的数i*/
    32             g++;
    33             s+=i;
    34         }        
    35     }
    36     
    37     printf("%d %ld
    ",g,s);
    38 
    39     return 0;
    40 }

    6、韩信点兵

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int fun(int a, int b, int c)
     5 {
     6     for(int i=10; i<100; ++i)
     7     {
     8         if(i%3==a && i%5==b && i%7==c)
     9             return i;
    10     }
    11     return -1;
    12 }
    13 
    14 int main()
    15 {
    16     int a,b,c;
    17     scanf("%d%d%d",&a,&b,&c);
    18     printf("%d
    ",fun(a,b,c));
    19     return 0;
    20 }

    7、粒子裂变

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int main()
     5 {
     6     int a=1,b=0,t;
     7     scanf("%d",&t);
     8     
     9     while(t--)
    10     {
    11         int y1 = a;
    12         int y2 = b;
    13         
    14         //1个a裂变3个b
    15         b += 3*y1; 
    16         
    17         //1个b裂变1个a,2个b    
    18         a += y2;   
    19         b += 2*y2;
    20         
    21         //裂变消失的a,b
    22         a -= y1; 
    23         b -= y2; 
    24     }
    25     
    26     printf("%d %d
    ",a,b);
    27     return 0;
    28 }

    8、最大乘积

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int main()
     5 {
     6     int n,s=1,x,max=0;
     7     scanf("%d",&n);
     8     
     9     while(n--)
    10     {
    11         scanf("%d",&x);
    12         s*=x;
    13         if(max<s)
    14             max = s;
    15     }
    16     
    17     if(max>0)
    18         printf("%d
    ",max);
    19     else
    20         printf("-1");
    21     return 0;
    22 }

    9、分数拆分

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int main()
     5 {
     6     int k=4;
     7     scanf("%d",&k);
     8     
     9     for(int m=k*2; m>=2; --m)
    10     {
    11         for(int i=1; i<=k*2; ++i)
    12         {
    13             if(k*m*i%(k*m+i)==0 && k == k*m*i/(k*m+i)){
    14                 printf("1/%d=1/%d+1/%d
    ",k,k*m,i); 
    15                 break;
    16             }            
    17         }
    18     }
    19         
    20     return 0;
    21 }

    10、分数化小数

     1 #include<stdio.h>
     2 #include<math.h>
     3 
     4 int main()
     5 {
     6     int a,b,c;
     7     scanf("%d%d%d",&a,&b,&c);
     8       
     9     /*int n = a<b?a:b;
    10     for(int i=n; i>0; --i)
    11     {
    12         if(a%i==0 && b%i==0){
    13             a/=i,b/=i;
    14             break;
    15         }            
    16     }*/
    17     
    18     int x = a%b;
    19     if(a>b)
    20         printf("%d.",a/b);
    21     else
    22         printf("0.");
    23     
    24     //if(x)
    25     while(c--)
    26     {    
    27         x *=10;
    28         printf("%d",x/b);
    29         x %= b;
    30     } 
    31 
    32     return 0;
    33 }
  • 相关阅读:
    webIDE 第二篇博文
    前端第一天
    记昨天
    入职第四天
    入职第二天
    linux常用命令,自己总结
    一切从头开始
    在服务器上搭建SVN
    Dynamic CRM 365学习历程--JS
    Dynamic CRM 365学习历程--有关CRM的学习过程种需要注意的事项
  • 原文地址:https://www.cnblogs.com/GoldenEllipsis/p/11544023.html
Copyright © 2011-2022 走看看