编程计算s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),a和相加的项数由用户输入控制。 **输入格式要求:"%d,%d" 提示信息:"please input a and n\n" **输出格式要求:"a=%d,n=%d\n" "a+aa+...=%ld\n" 程序运行示例如下: please input a and n 3,5 a=3,n=5 a+aa+...=37035
#include <stdio.h>
int main() { int b=0, a, n; long int s=0; printf("please input a and n\n"); scanf("%d,%d",&a,&n);
for(int i=1;i<=n;i++) { b = b * 10 + a; s += b; } printf("a=%d,n=%d\n", a, n); printf("a+aa+...=%ld\n",s); }
unsigned long Fact(unsigned int n) { unsigned long result = 1; for (unsigned int i = 1;i<=n;i++) { result *= i; } return result; } int main() { unsigned int n; printf("Input n(n>0):"); scanf("%u",&n); unsigned long sum = 0; for (unsigned int i = 1;i<=n;i++) { sum += Fact(i); } printf("sum = %lu\n",sum); return 0; }
Q5
判断1-100的素数
#include <math.h> #include <stdio.h> int fun(int n); int main() { int m, k = 0; for (m = 1; m <= 100; m++) if (fun(m) == 1) { printf("%4d", m); k++; if (k % 5 == 0) printf("\n"); } return 0; }
int fun(int n) { int i, k = 1; if (n <= 1) { k = 0; return k; } for (i = 2; i < n; i++) { if (n % i == 0) { k = 0; return k; } } return k; }
找素数函数
int fun(int n);
int fun(int n) { int i; if (n <= 1) { return 0; } for (i = 2; i < n; i++) { if (n % i == 0) { return 0; } } return 1; }
利用辗转相除法求最大公约数
#include <stdio.h> int MaxCommonFactor(int a, int b); int main() { int a, b, x;
void Func(int n, char a, char b, char c); int main() { int n; printf("Input the number of disks:"); scanf("%d",&n); printf("Steps of moving %d disks from A to B by means of C:\n",n); Func(n, 'A', 'B', 'C');
return 0; } void Func(int n, char a, char b, char c) { if(n == 1) { printf("Move 1: from %c to %c\n",a,b); } else { Func(n-1,a,c,b); // 将n-1个盘子从起始柱子移动到辅助柱子 printf("Move %d: from %c to %c\n",n,a,b); Func(n-1,c,b,a); // 将之前移动到辅助柱子上的n-1个盘子从辅助柱子移动到目标柱子 } }
查找车牌
#include <stdio.h> #include <math.h> int main() { int a, b; for(a=1;a<=9;a++) { for(b=1;b<=9;b++) { if(a!=b && (a*1000+a*100+b*10+b)==sqrt(a*1000+a*100+b*10+b)*sqrt(a*1000+a*100+b*10+b)) { printf("31%d%d%d%d¡£",a,a,b,b); break; } } } return 0; }
查找数组元素下标
#include <stdio.h> int Search(int a[], int n, int x); int main() { int a[10]; int x; int result = -1; printf("Input 10 numbers:\n"); for(int i=0;i<10;i++) { int n; scanf("%d",&n); a[i] = n; } printf("Input x:\n"); scanf("%d",&x); result = Search(a,10,x); if(result != -1) printf("Subscript of x is %d\n",result); else printf("Not found!\n"); return 0; } int Search(int a[], int n, int x) { for(int i=0;i<n;i++) { if(a[i]==x) { return i; } } return -1; }
#include <stdio.h>
int main() { int num[12] = { 1, 0 }; int total = 1; printf("%4d",num[0]);