我是靠谱客的博主 飘逸发带,最近开发中收集的这篇文章主要介绍C语言_翁恺_编程练习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  1. 数字特征值

对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。

输入格式:
一个非负整数,整数的范围是[0,1000000]。
输出格式:
一个整数,表示计算结果。

输入样例:
342315
输出样例:
13

#include <stdio.h>
#include <math.h>
int main(){
int n;
int a = 0;//数字
int b = 0;//位数
int c = 0;//奇偶一致(逆)
int count_a = 0;
int count = 0;
scanf("%d",&n);
while (n>0){
a = (n % 10 % 2 + 2) + a * 10;
count += 1;
b = count % 2 + 2 + b * 10;
if (n % 10 % 2
== count % 2 ){
c = c + 1*(pow(2,count_a));
}else {
c = c + 0*(pow(2,count_a));
}
count_a += 1;
n /= 10;
}
printf("%d",c);
return 0;
}

更好的答案

#include <stdio.h>
#include <math.h>
int main(){
int num;
int count=0;
int a=0;
int dig=0;
scanf("%d",&num);
do{
count ++;
a=num%10;
if((a+count)%2==0){
dig=dig+pow(2,count-1);
}
num /=10;
}while(num>0);
printf("%d",dig);
return 0;
}
  1. 素数和

我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

输入格式:
两个整数,第一个表示n,第二个表示m。
输出格式:
一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

输入样例:
2 4
输出样例:
15

#include <stdio.h>
int main(){
int prime;
int n,m;
int i,l;
int count = 0;
int sum = 0;
scanf("%d %d",&n,&m);
for (l=2;l<=200;l++){
prime = 1;
for (i=2;i<l;i++){ //判断 l 是否为素数
if (l%i == 0){
prime = 0; //不是素数
break;
}
}
if (prime == 1){
count++;
if (count>=n && count <= m){
sum += l;
// printf("%d,%dn",sum,l);
}
}
}
printf("sum=%d",sum);
return 0;
}
  1. 念整数

你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
如输入1234,则输出:
yi er san si
注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:
fu er san si yi

输入格式:
一个整数,范围是[-100000,100000]。
输出格式:
表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。

输入样例:
-30
输出样例:
fu san ling

#include <stdio.h>
int main(){
int n;//输入的一个数
int mask = 1;
int i;
int isnegative = 0;
printf("请输入一个数: n");
scanf("%d",&n);
if (n < 0) {
isnegative = 1;
n *= -1;
printf("fu ");
}
if (n == 0) printf("ling");
int a = n;
while(a>9){
a /= 10;
mask *= 10;
}
while(n>0){
i = n / mask;
n %= mask;
mask /= 10;
switch (i){
case 0: printf("ling"); break;
case 1: printf("yi"); break;
case 2: printf("er"); break;
case 3: printf("san"); break;
case 4: printf("si"); break;
case 5: printf("wu"); break;
case 6: printf("liu"); break;
case 7: printf("qi"); break;
case 8: printf("ba"); break;
case 9: printf("jiu"); break;
}
if(n>0) printf(" ");
}
printf("n");
return 0;
}

最后

以上就是飘逸发带为你收集整理的C语言_翁恺_编程练习的全部内容,希望文章能够帮你解决C语言_翁恺_编程练习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部