排列字母
#include <stdio.h>
#include <stdlib.h>
int main()
{
int b[30]={0};
char aa[30];
scanf("%s",&aa);
for(int i=0;i<strlen(aa);i++){
b[aa[i]-'A']++;
}
for(int i=0;i<26;i++){
for(int j=0;j<b[i];j++){
printf("%c",'A'+i);
}
}
// 请在此输入您的代码
return 0;
}

排列字母
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a,b;
scanf("%d %d",&a,&b);
int k;
//根据更相减损法可以知道当a小于b的时候gcd(a,b)=gcd(a,b-a),所以gcd(a+k,b+k)=gcd(a+k,b-a);
if(a>b){
for(k=1;;k++){
if((a+k)%(b-a)==0){
printf("%d",k);
break;
}
}
}
else {
for(k=1;;k++){
if((b+k)%(a-b)==0){
printf("%d",k);
break;
}
}
}
// 请在此输入您的代码
return 0;
}
GCD
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
//根据更相减损法可以知道当a小于b的时候gcd(a,b)=gcd(a,b-a),所以gcd(a+k,b+k)=gcd(a+k,b-a);
//设c=b-a;要求k的最小值为多少时a+k是c的倍数,那么只需要让k满足k=c-(a+k)%c;
// 请在此输入您的代码
long a,b,c;
long k;
scanf("%ld %ld",&a,&b);
if(b>a){
c=b-a;
k=c-(a+k)%c;
}
else {
c=a-b;
k=c-(b+k)%c;
}
printf("%ld",k);
return 0;
}

第三题晚上回来研究
文章包含两个C语言程序,第一个程序用于读取一串字符并按字母顺序排列输出。第二个程序利用更相减损法计算两个整数的最大公约数(GCD),并找到使其中一个数成为另一数倍数的最小正整数k。
156

被折叠的 条评论
为什么被折叠?



