7744问题(输出所有形如aabb的4位完全平方数)
方法1:
#include#include int main (){ for(int a=1;a<=9;a++){ for(int b=0;b<=9;b++){ int n = a*1100+b*11; int m = floor(sqrt(n)+0.5); if(m*m == n) printf("%d\n",n); } } return 0; }
方法2:
#include#include int main (){ for(int x=1;;x++){ int n = x*x; if(n < 1000)continue; if(n > 9999)break; if(n/1000 == n/100%10 && n/10%100%10 == n%10) printf("%d\n",n); } return 0;}
开灯问题:
n盏灯,k个人
#include#include int a[1000];int main (){ int n,k,first = 1; memset(a,0,sizeof(a)); scanf("%d%d",&n,&k); for(int i=1;i<=k;i++){ for(int j=1;j<=n;j++){ if(j%i==0)a[j]=!a[j]; } } for(int i=1;i<=n;i++){ if(a[i])printf("%d ",i); } return 0;}
生成元
给定n,求最小生成元(如果x加上x的各位数字之和为y,则称x是y的生成元)
#include#include int a[100005];int main (){ int T,n; memset(a,0,sizeof(a)); for(int m=1;m<3000;m++){ int x = m,y = m; while(x>0){ y+=x%10; x/=10; } if(a[y] == 0 || a[y] > m)a[y]=m; } scanf("%d",&T); while(T--){ scanf("%d",&n); printf("%d\n",a[n]); } return 0;}
生成1~n的排列
#include#include int a[100];void f(int n,int* a,int cur){ if(n==cur){ for(int i=0;i
n皇后问题解的个数:
#include#include int a[100];long total=0;int n;void search(int cur){ if(cur==n)total++; else for(int i=0;i
tip:
printf("%5d",x); //%5d表示按照5位数打印,不足5位在前面补空格
scanf("%s",s); 遇到空白字符会停下来printf("%.1f",x); 保留小数点后一位
posted on 2016-09-13 12:29 阅读( ...) 评论( ...)