连续做了C书上的习题,也不知道对不对!

// 1 - 2! + 3! - 4! + ... - 10!
#include <stdio.h>

int factorial(int n) {
	int x = 1, i;
	for(i = 1; i <= n; i++) {
		x *= i;
	}
	return x;
}

int main(void) {
	int sum = 0, i, flag = 1;
	for(i = 1; i <= 10; i++) {
//		printf("%d\n", factorial(i));
		sum += flag * factorial(i);
		flag *= -1;
	}
	printf("1 - 2! + 3! - 4! + ... - 10! = %d\n", sum);
}
// 1 - 1/3 + 1/5 - 1/7 + ... -1/101
#include <stdio.h>

int main(void) {
	int i, flag = 1;
	float sum = 0.0;
	for(i = 1; i <= 101; i += 2) {
//		printf("%f\n", 1.0 / i);
		sum += flag * 1.0 / i;
		flag *= -1;
	}
	printf("%f\n", sum);
}

//  153 = 1^3 + 5^3 + 3^3
#include <stdio.h>
#include <stdlib.h>

int main(void) {
	int i, a[3], j, k;
	for(k = 100; k < 1000; k++) {
		i = k;
		j = 0;
		while(i) {
			a[j++] = i % 10;
//			printf("%d\n", i);
			i /= 10;
		}
		if(k == a[0] * a[0] * a[0] + a[1] * a[1] * a[1] + a[2] * a[2] * a[2]) {
			printf("%d = %d^3 + %d^3 + %d^3\n", k, a[2], a[1], a[0]);
		}
	}
}
/*  Print
	******
	******
	******
	******
	******
	******
*/
#include <stdio.h>

int main(void) {
	int i, j, n;
	printf("Please input n:");
	scanf("%d", &n);
	for(i = 0; i < n; i++) {
		for(j = 0; j < n; j++) {
			printf("*");
		}
		printf("\n");
	}
}


// 分别求字符串中,大写字符、空格和其他字符的个数,字符串长度不大于80
#include <stdio.h>

int mystrlen(const char* s) { // 虽然库中有这个,但仍然愿意自己做
	int len = 0;
	while(*s++) {
		len++;
	}
	return len;
}

int main(void) {
	int a = 0, b = 0, c = 0;
	char str[0xff] = "ABC  Abc", * s = str;
	printf("Please input Your Strings:\n");
	do{
		*s++ = getchar();
	} while(*(s - 1) != 0xa);
	if(mystrlen(s) > 80) {
		printf("字符串长度过长");
		return -1;
	}
	s = str;
	while(*s) {
		if(*s == ' ') {
			a++;
		} else if(*s >= 'A' && *s <= 'Z') {
			b++;
		} else {
			c++;
		}
		s++;
	}
	printf("空格 = %d,大写字母 = %d,其他字符 = %d\n", a, b, c);
}
// 锟? == 锛?* 0.01 + 锛? 0.02 + 锛? 0.05
#include <stdio.h>

int main(void) {
	int i, j, k, n = 1;
	for(i = 0; i <= 100; i++) {
		for(j = 0; j <= 100; j += 2) {
			for(k = 0; k <= 100; k += 5) {
				if(100 == i + j + k) {
					printf("%d : 1Yuan == (%d) * 1F + (%d) * 2F + (%d) * 5F\n", n, i / 1, j / 2, k / 

5);
					n++;
				}
			}
		}
	}
}
//涓€涓洅瀛愪腑鏀炬湁12涓悆锛屽叾涓?涓孩鐞冿紝3涓櫧鐨勶紝6涓粦鐨勶紝浠庝腑浠诲彇8涓悆锛?
//姹傚叡鏈夊灏戠

涓嶅悓鐨勯鑹叉惌閰?

#include <stdio.h>

int main(void) {
	int i, j, k;
	for(i = 0; i <= 3; i++) {
		for(j = 0; j <= 3; j++) {
			for(k = 0; k <= 6; k++) {
				if(8 == i + j + k) {
					printf("(%d)R (%d)W (%d)B\n", i, j, k);
				}
			}
		}
	}
}
// even = prime + prime;
#include <stdio.h>

int is_prime(int n) {
	int i;
	for(i = n - 1; i >= 2; i--) {
		if(n % i == 0) {
			return 0;
		} 
	}
	return 1;
}

int main(void) {
	int i, n;
	printf("Please input a even number:");
	scanf("%d", &n);
	for(i = 3; i <= n - 2; i++) {
		if(i > n / 2) {
			break;
		}
		if(is_prime(i) && is_prime(n - i)) {
			printf("Two prime %d + %d = %d(even)\n", i, n - i, n);
		}
	}
}
// N是一个4位数,它的9倍恰好是其反序数(123 -- 321)
#include <stdio.h>

int num_mun(int n) {
	int a[0x2f], i = 0, j, sum = 0, b = 1, c = 0;
	while(n) {
		a[i++] = n % 10;
		n /= 10;
	}
	for(j = i - 1; j >= 0; j--) {
		c = a[j] * b;
		sum += c;
		b *= 10;	
	}
	return sum;
}

int main(void) {
	int i;
	for(i = 1000; i < 9999; i++) {
		if(i * 9 == num_mun(i)) {
			printf("%d * 9 == %d\n", i, num_mun(i));
		}
	}
}
// 1 + 11 + 111 + 1111 + ... 
// is prime
// 10 = 2 * 5
#include <stdio.h>

int f(int n) {
	if(1 == n) {
		return 1;
	} else {
		return f(n - 1) * 10 + 1;
	}
}

int sum_f(int x, int n) {
	int i, sum = 0;
	for(i = 1; i <= n; i++) {
		sum += f(i);
	}
	sum *= x;
	return sum;
}

int is_prime(int n) {
	int i;
	for(i = n - 1; i > 1; i--) {
		if(0 == n % i) {
			return 0;
		}
	}
	return 1;
}

void prime_mul(int n) {
	printf("%d = ", n);
	int x = n, c = 0, c1 = 0;
	int i = 2;
	while(i <= x) {
		while(0 == x % i) {
			x /= i;
			if(is_prime(i)) {
				c++;
			}
		}
		i++;
	}
	i = 2;
	while(i <= n) {
		while(0 == n % i) {
			n /= i;
			if(is_prime(i)) {
				printf("%d", i);
				if(++c1 < c) {
					printf(" * ");
				}
			}
		}
		i++;
	}
	printf("\n");
}

int main(void) {
	int i;
	printf("%d\n\n", sum_f(1, 4));
	for(i = 30; i <= 100; i++) {
		prime_mul(i);
	}
}

发布了159 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_39410618/article/details/102253813
今日推荐