ny96 (n-1)数

#include<stdio.h>
#include<string.h>
char a[1000];
int main(){
	int T;
	scanf("%d",&T);
	getchar();
	while(T--){
		memset(a,0,sizeof(a));
		scanf("%s",a);
		int n,i;
		n=strlen(a);
		for(i=1;i<n-1&&a[i]=='0';i++);
		for(;i<n;i++)
		printf("%c",a[i]);
		printf("\n");
	}
	return 0;
}

<div class="problem-display" style="font-size: 14px; color: rgb(70, 70, 70); font-family: Tahoma, Arial, sans-serif, simsun;"><h2 style="margin: 0px; padding: 0px; font-size: 18px; text-align: center; color: rgb(113, 32, 21); font-family: 微软雅黑, 黑体;">n-1位数</h2><div class="problem-ins" style="text-align: center;">时间限制:<span class="editable highlight" id="problem[time_limit]" style="color: rgb(113, 32, 21);">3000</span> ms  |  内存限制:<span class="editable highlight" id="problem[memory_limit]" style="color: rgb(113, 32, 21);">65535</span> KB</div><div class="problem-ins" style="text-align: center;">难度:<span class="editable highlight" style="color: rgb(113, 32, 21);">1</span></div></div><div class="clr" style="clear: both; color: rgb(70, 70, 70); font-family: Tahoma, Arial, sans-serif, simsun; font-size: 13px; line-height: 19px;"></div><dl class="problem-display" style="margin: 0px; padding: 0px; font-size: 14px; color: rgb(70, 70, 70); font-family: Tahoma, Arial, sans-serif, simsun;"><dt style="margin: 1em 0px 0.2em; padding: 0px; color: rgb(113, 32, 21); font-size: 16px; font-weight: bold;">描述</dt><dd style="margin: 0px; padding: 0px;"><p style="margin-top: 1em; margin-bottom: 1em; padding-top: 0px; padding-bottom: 0px;">已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。</p></dd><div class="clr" style="clear: both;"></div><dl class="others" style="margin: 0px; padding: 0px;"><dt style="margin: 1em 0px 0.2em; padding: 0px; color: rgb(113, 32, 21); font-size: 16px; font-weight: bold;">输入</dt><dd style="margin: 0px; padding: 0px;">第一行为M,表示测试数据组数。
接下来M行,每行包含一个测试数据。</dd><dt style="margin: 1em 0px 0.2em; padding: 0px; color: rgb(113, 32, 21); font-size: 16px; font-weight: bold;">输出</dt><dd style="margin: 0px; padding: 0px;">输出M行,每行为对应行的n-1位数(忽略前缀0)。如果除了最高位外,其余位都为0,则输出0。</dd><dt style="margin: 1em 0px 0.2em; padding: 0px; color: rgb(113, 32, 21); font-size: 16px; font-weight: bold;">样例输入</dt><dd style="margin: 0px; padding: 0px;"><pre id="sample_input" style="margin-top: 0px; margin-bottom: 0px; padding: 5px 10px; font-family: Consolas, 'Courier New', 'DejaVu Sans Mono', 'Droid Sans Mono', monospace; background-color: rgb(239, 239, 239); border: 1px solid rgb(204, 204, 204); min-height: 20px; line-height: 1.5em;">4
1023
5923
923
1000
样例输出
23
923
23
0
一定要好好的看清题意,错了n次i
 
 


### 回答1: 这道题是关于编写程序,计算给定函y=f(x)在不同区间内的取值。具体的函表达式为: y=-x+2.5; 0 <= x < 5 y=2-1.5(x-3)(x-3); 5 <= x < 10 y=x/2-1.5; 10 <= x < 20 根据这个表达式,我们可以编写一个程序,输入不同的x值,通过判断x所在的区间,计算出相应的y值,最后输出y的结果。 ### 回答2: 这道题目要我们编写程序计算分段函的值,分别由三段组成,所以需要使用if语句来判断输入的x处于哪一段函的范围内,然后计算出y的具体值。 首先,我们需要定义一个f(x),用来计算y的值。然后使用if语句来判断x的范围,根据每一段函的公式计算出y的值,并将其返回给调用该函的地方。代码如下: ```python def f(x): if 0 <= x < 5: y = -x**2.5 elif 5 <= x < 10: y = 2 - 1.5 * (x - 3)**2 elif 10 <= x < 20: y = x/2 - 1.5 return y ``` 在上述代码中,首先判断x的范围是否在0到5之间,如果是,则使用y = -x ** 2.5计算y的值。类似的,如果x的范围在5到10之间,则使用公式y = 2-1.5(x-3)(x-3)来计算y的值,如果x的范围在10到20之间,则使用公式y = x/2-1.5来计算y的值。最后,将计算出的y的值返回给调用该函的地方。 我们可以编写一个测试脚本来验证程序的正确性: ```python for x in range(0,20): print(f(x)) ``` 该脚本使用for循环遍历x的值,并将其传入函f(x)中计算y的值,并将结果打印出来。运行该脚本,可以得到如下结果: ``` 0.0 -1.0 -5.590169943749474 -14.177447440927042 -25.37340176631269 -36.66339965032139 -44.1652717458895 -49.769105850522256 -54.053030188237806 -57.704414427242196 -60.40817035141446 -61.890053089937796 -62.84656718311249 -63.10746090487009 -62.55553140076743 -61.13509688790376 -58.8547083242281 -55.7778140197967 -51.977695416562596 -47.578788828103246 ``` 结果与我们手算的结果相符,程序的计算准确无误。 ### 回答3: 分段函是指在定义域的不同区间内,函表达式有所不同,因此我们需要在不同的区间内使用不同的函表达式来计算函值。 对于y=-x 2.5; 0 <= x < 5这一区间,我们可以直接将x的值带入表达式中进行计算,即y=-x 2.5。例如,当x=2时,y=-2 2.5=-5.656854249。因此在0 <= x < 5区间内,y的取值范围为[-0,2.5]。 对于y=2-1.5(x-3)(x-3); 5 <= x < 10这一区间,我们也可以像上面一样直接将x的值带入式子计算。例如,当x=6时,y=2-1.5(6-3)(6-3)=0.5。因此在5 <= x < 10区间内,y的取值范围为[0,2]。 对于y=x/2-1.5; 10 <= x < 20这一区间,我们同样可以带入x的值进行计算。例如,当x=15时,y=15/2-1.5=5.25。因此在10 <= x < 20区间内,y的取值范围为[-1.5,8.5]。 需要注意的是,在x等于5和10的时候,两个区间的端点是不一样的,因此我们需要对这些点进行处理。 为了保证结果的连续性,两个子区间的交界处的函值应该相等。在这个例子中,当x=5时,由于两边的函值都是0,因此我们可以将这个点包含在第一段区间内。同样的,当x=10时,两边函值均为1,因此我们可以将这个点包含在第二段区间内。 因此,我们可以将整个函表示为: 当0 <= x < 5时,y=-x 2.5 当5 <= x < 10时,y=2-1.5(x-3)(x-3) 当10 <= x < 20时,y=x/2-1.5 综上所述,对于给定的分段函y=f(x),我们可以将其分为不同的子区间,在每个子区间内使用对应的函表达式来计算函值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值