标签:编译 ++ 输出 int class clu 开始 const pre
WERTYU
回文词
猜数字游戏
生成元
x+x的各个数字之和得到y,说明x是y的生成元,给出n(1,100000),求最小生成元。无解输出0;
#include<stdio.h> #include<string.h> #define maxn 1000005 int ans[maxn]; int main() { int T,n; memset(ans,0,siezeof(ans)); for(int m=1;m<maxn;m++) { int x=m,y=m; while(x>0) { y+=x%10; x/=10; } if(ans[y]==0||m<ans[y]) ans[y]=m; } scanf("%d",&T); while(T--) { scanf("%d",&n); printf("%d\n",ans[n]); } return 0; }
环状序列
#include<stdio.h> #include<string.h> #define maxn 105 //判断p是否比q的字典序小 int less(const char*s,int p,int q) { int n=strlen(s); for(int i=0;i<n;i++) { if(s[(p+i)%n]!=s[(q+i)%n]) //如果遇到字符不同,就进行判断; { //注意,循环的可以用"...%n"来进行循环。 return (s[(p+i)%n<s[(q+i)%n]]); //如果p<q,就返回1,其他情况返回0; } } return 0; } int main() { int T; char s[maxn]; scanf("%d",&T); while(T--) { scanf("%s",s); int ans=0; int n=strlen(s); for(int j=0;j<n;j++) { if(less(s,j,ans)) //不断判断更新ans的值 ans=j; } for(int i=0;i<n;i++) { putchar(s[(i+ans)%n]); //用putchar一个个输出字符 } putchar(‘\n‘); } return 0; }
标签:编译 ++ 输出 int class clu 开始 const pre
原文地址:https://www.cnblogs.com/xuwanwei/p/10727056.html