13 数据加密
Time Limit:1000MS Memory Limit:65535K
题型: 编程题 语言: G++;GCC
描述
n位的正整数(0<n<10),加密规则为:每位数字加6,然后用和除以8的余数再加1,代替该数字,即为密文数据。 现在由键盘输入正整数n,请编程输出密文数据。
输入格式
n位的正整数(0<n<10)
输出格式
密文数据
输入样例
123
输出样例
812
#include <stdio.h>
#include<math.h>
int Show(int n)
{
int count=0; //存储n的位数
if(n==0) return 1; //n为0是直接返回位数为1
while(n!=0) //对正整数求位数
{
n/=10;
count++;
}
return count;
}
void Print(int n)
{
int i=Show(n); //存放n的位数
int a=pow(10,i-1); //存放最高位的10的整数次幂求每位数字
if(n==0) //n为0时输出0
{
printf("0\n");
}
while(n!=0) //输出每位数字
{
printf("%d",(((n/a)+6)%8)+1);
n%=a;
a/=10;
}
}
int main()
{
int n;
scanf("%d",&n);
Print(n);
return 0;
}