- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言作业3
撞球
#include stdio.h
#include math.h
#include string.h
int main()
{
double length,wide,x0,y0,x1,y1;
int i;
char towards[1500];
while(1)
{
memset(towards,0,sizeof(towards));
if(scanf(%lf %lf,wide,length)==EOF)
break;
scanf(%lf %lf,x0,y0);
scanf(%lf %lf,x1,y1);
scanf(%s,towards);
for(i=0;istrlen(towards);i++)
{
if(towards[i]==F)
y0=-y0;
if(towards[i]==B)
y0=2*length-y0;
if(towards[i]==L)
x0=-x0;
if(towards[i]==R)
x0=2*wide-x0;
}
printf(%.4lf\n,sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)));
}
return(0);
}
20. 整数问题
成绩: 0 / 折扣: 0.8
请求输出满足以下条件的n位正整数的个数:
要求该n位整数的从高位开始前1位可以被1整除,该n位整数前2位可以被2*2整除,该整数前3位可以被3*3整除,该整数前4位可以被4*4整除……。即该整数前k位都可被k平方整除。
例如:n=1,则符合条件的1位正整数为1~9,输出答案9。n=2,符合条件的正整数为:12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92, 96,则输出答案22。当n=4时,2432就是一个符合题意的整数。第一位2可以被1整除;前2为24可以被4整除;前3位243可以被9整除;整个4位2432可以被16整除。
输入: n(0=n9)
输出:??? 符合该条件的n位正整数的数量
(本题目为软件学院2007年保研学生初试上机试题。本题可以不用数组)
? 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示
1? 以文本方式显示
9? 无限制 64M 0 测试用例 2 以文本方式显示
2? 以文本方式显示
22? 无限制 64M 0 测试用例 6 以文本方式显示
8? 以文本方式显示
0? 无限制 64M 0 思路一:做9个数组,第一个数组为1-9,从n=2开始,将上一组的每个数乘10加0-9,验算得到的数是否是n^2的整数倍,是则存入当前数组。完成后第n个数组的长度即是所求。
思路二:直接数完9组数据,做成映射表。
1,2,3,4,5,6,7,8,9共9个
12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92共22个
126,162,207,243,288,324,360,369,405,441,486,522,567,603,648,684,720, 729,765,801,846,882,927,963共24个
1264,2432,2880,3248,3600,3696,4416,4864,6032,6480,6848,7200,7296,8016,8464,9632,共16个
24325,28800,36000,60325,64800,72000,96325,共7个
243252,288000,360000,603252,648000,720000,963252,共7个
6480005,共1个
n=8,9时个数为0
则建立数组a[9]={9,22,24,16,7,7,1,0,0},输入n则直接输出数组的第n个值即可
注意,如果数组计数从0开始,则输入n要输出a[n-1]#include stdio.h
void main()
{int n;
n9;
scanf(%d,n);
{if(n==1)
printf(9\n);
}
{if(n==2)
printf(22\n);
}
{if(n==3)
printf(24\n);
}
{if(n==4)
printf(16\n);
}
{if((n==5)||(n==6))
printf(7\n);
}
{if(n==7)
printf(1\n);
}
{if((n==8)||(n==0))
printf(0\n);
}
文档评论(0)