1.除以13
描述
输入一个大于0的大整数N,长度不超过100位,要求输出其除以13得到的商和余数。
输入
一个大于0的大整数,长度不超过100位。
输出
两行,分别为整数除法得到的商和余数。
样例输入:
2132104848488485
样例输出:
164008065268345
0
#include
#include
#include
using namespace std;
int main()
{
int t,len,shang[300],yu=0,b[150]={0}; //yu表示余数,shang[300]表示商
char a[150];
gets(a+1); //从标准输入设备读取字符串函数
len=strlen(a+1); //获取字符串长度
for(int i=1;i<=len;i++)
{
b[i]=a[i]-48; //ascll表中0-9是在48-57,所以需要重零开始
b[i]=b[i]+yu*10;
yu=b[i]%13; //得到余数
shang[i]=b[i]/13; //得到商
}
for(int j=1;j<=len;j++) //用于删除前导0
{
if(shang[j]!=0)
{
t=j;
break;
}
}
for(t;t<=len;t++) //此时t=j
{
cout<
}
cout<
cout << yu<< endl;
return 0;
}
2.判决素数个数
描述
输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。
输入
两个整数X和Y(1 <= X,Y <= 105)。
输出
输出一个整数,表示X,Y之间的素数个数(包括X和Y)。
样例输入:
1 100
样例输出:
25
#include
#include
#include
using namespace std;
bool isprime(int n)
{
if(n < 2) return false;
if(n == 2) return true;
for(int i = 2; i <= sqrt(n); ++i)
{
if(n % i == 0) return false;
}
return true;
}
int main()
{
int x, y, sum = 0;
scanf("%d%d",&x,&y);
if(x>y) swap(x,y);//如果x>y,则需要交换
for(int i = x; i <= y; ++i) //循环出全部数,判断某个数是素数。
{
if(isprime(i)) sum++;
}
printf("%d",sum);
return 0;
}
3.人民币支付
描述
从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。
输入
一个小于1000的正整数。
输出
输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数
样例输入
735
样例输出
7
0
1
1
1
0
#include
using namespace std;
//计算返回位数
int juge(int n){
int count=0;
while(n){
n/=10;
count++;
}
return count;
}
int main(){
int n,a=0,b=0,c=0,d=0,e=0; //定义输入的变量,以及每张人民币的面值为代表: a:100 b:50 c:20……
cin >> n; //例如 396
while(n>5){ //如果输入金额大于5,那么进入循环,判断其位数,再从大往小递减
if(juge(n) == 3){ //这里的3表示3个零, 例如:n=96 a=3
a=n/100;
n=n%100;
}
if(juge(n) == 2){ //同上 例如:n=96
if(n >= 50){
n=n-50;
b++;
}
while(n>=20){ //例如:( n=46 a=3 b=1 c=0),(n=26 a=3 b=1 c=1),(n=6 a=3 b=1 c=2)
n=n-20;
c++;
}
if(n>=10){ //例如:(n=6 a=3 b=1 c=2 d=0)
n=n-10;
d++;
}
}
if(n >= 5){ //例如:(n=6 a=3 b=1 c=2 d=0),//(n=1 a=3 b=1 c=2 d=0 e=1)
n=n-5;
e++;
}
}
cout<
cout<
cout<
cout<
cout<
cout<
}
4.最长单词
描述
一个以'.'结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式
输入
一个以'.'结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式
输出
该句子中最长的单词。如果多于一个,则输出第一个
样例输入
I am a student of Peking University.
样例输出
University
#include
#include
#include
using namespace std;
int main()
{
char a[2500]; //题目说明不超过500但是试了501-510运行都显示错误 不清楚为什么 给大点就完事 有人知道原因希望告知评论下
gets(a);
int len=strlen(a);
int k=0,max=-1,max_x;
for(int i=0;i
{
if( (a[i] >= 'a' && a[i]<='z') || (a[i] >= 'A' && a[i] <='Z')) //若为大小字母则 计数器 k++
{
k++;
}
else //若为 空格与点则
{
if(k>max) //判断最大长度
{
max=k; //记录最大长度存入max中
max_x=i-max; //记录最大单词的起始坐标
}
k=0; //计数器清零
}
}
for(int i=max_x;i
cout<