提取不重复的整数:
题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例1
输入
9876673
输出
37689
#include<stdio.h>
int value(int *A, int B)
{
int i;
for(i = 0; i < B; i++)
{
if(A[i] == A[B])
{
return 0;
}
}
return 1;
}
int main()
{
int num;
while(scanf("%d", &num) != EOF)
{
int i = 0, j, Arr[1000] = {0};
while(num != 0)
{
Arr[i] = num % 10;
num = num / 10;
i++;
}
for(j = 0; j < i; j++)
{
if(value(Arr, j) == 1)
{
printf("%d", Arr[j]);
}
}
}
return 0;
}
合并表记录
题目描述
数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
示例1
输入
4
0 1
0 2
1 2
3 4
输出
0 3
1 2
3 4
#include <stdio.h>
int main()
{
int a, i;
int Arr[1024][2] = {0};
scanf("%d\n", &a);
int j, k;
for(i = 0; i < a; i++)
{
scanf("%d %d", &j, &k);
Arr[j][0] = Arr[j][0] + k;
Arr[j][1] = 1;
}
for(i = 0; i < 1024; i++)
{
if(Arr[i][1] > 0)
{
printf("%d %d\n", i, Arr[i][0]);
}
}
return 0;
}
数字颠倒
题目描述
描述:
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
输入描述:
输入一个int整数
输出描述:
将这个整数以字符串的形式逆序输出
示例1
输入
1516000
输出
0006151
#include<stdio.h>
int main()
{
int num;
while(scanf("%d", &num) != EOF)
{
int i = 0, j, Arr[1000] = {0};
while(num != 0)
{
Arr[i] = num % 10;
num = num / 10;
i++;
}
for(j = 0; j < i; j++)
{
printf("%d", Arr[j]);
}
}
return 0;
}
字符串反转:
#include<stdio.h>
#include<string.h>
int main()
{
char Arr[1024] = {0};
while(scanf("%s", Arr) != EOF)
{
int len = strlen(Arr);
int i;
for(i = 0; i < len / 2; i++)
{
char temp;
temp = Arr[i];
Arr[i] = Arr[len - (i + 1)];
Arr[len -(i + 1)] = temp;
}
printf("%s", Arr);
}
return 0;
}
求int型正整数在内存中存储1的个数
#include <stdio.h>
int main(){
int num,n=0;
scanf("%d",&num);
while(num!=0)
{
if(num % 2 == 1)
{
n++;
}
num /= 2;
}
printf("%d\n",n);
}
本文介绍了几种处理整数的算法,包括去除重复数字、合并表记录、数字颠倒及字符串反转,展示了如何通过编程实现这些功能,适用于初学者和算法爱好者。

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



