D进制的A+B问题
输入两个非负10进制整数A和B(<=2^30^-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:
123 456 8
输出样例:
1103
#include <cstdio>
int main()
{
int a,b,d;
scanf("%d%d%d",&a,&b,&d);
int sum = a+b;
int ans[31],num =0; //ans存放D进制的每一位 31:2的30次方
do //进制转换
{
ans[num++] = sum%d; // 除基取余
sum /= d;
}
while (sum != 0);
for (int i = num -1;i >=0;i--)
{
printf("%d",ans[i]);
}
return 0;
}
/*用 do ...while而不用while语句的原因是:
如果十进制Y恰好等于0,那么while将直接跳出循环,导致结果错误*/
跟奥巴马一起编程:
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。
输出格式:
输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50%(四舍五入取整)。
输入样例:
10 a
输出样例:
aaaaaaaaaa
a a
a a
a a
aaaaaaaaaa
#include <cstdio>
int main()
{
int row,col; //行。列
char c;
scanf("%d %c",&col,&c); //输入行数预使用的字符
if (col% 2 != 0)
{
row = (col+1)/2;
}
else
{
row = col/2;
}
for (int i = 0;i < row;i++)
{
for (int j = 0;j < col;j++)
{
if (i == 0||i == row-1)
{
printf("%c",c);
}
else
{
if (j == 0||j == col-1)
{
printf("%c",c);
}
else
{
printf("");
}
}
}
}
return 0;
}
/*
#include <cstdio>
int main()
{
int row,col;
char b;
scanf("%d %c",&col,&c);
if(col%2!=0)
{
row=(col+1)/2;
}
else
{
n=a/2;
}
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
if(i==0||i==row-1)
{
printf("%c",c);
}
else
{
if(j==0||j==col-1)
{
printf("%c",c);
}
else
{
printf("")
}
}
}
}
return 0;
}
*/
题目描述:
输入n,输入一组数据(包含n个数据),给出一个数X,查找X在数组中的下标;
# include <cstdio>
const int maxn = 200;
int a[maxn]; //存放N个数
int main ()
{
int n,x;
while (scanf("%d",&n) != EOF)
{
for (int i = 0 ;i < n;i++)
{
scanf("%d",&a[i]); //输入n个数
}
scanf ("%d",&x); //输入预查询的数
int k;
for (k = 0;k < n;k++)
{
if (a[k] == x) //如果找到了x
{
printf("%d\n",k); //输出对应的下标
break ;
}
}
if(k == n) //如果没有找到
{
printf("-1\n"); //输出-1
}
}
return 0;
}